Firebase Admin SDK - 创建没有密码的用户是否安全?

Firebase Admin SDK - is it safe to create users without passwords?

我在 Firebase 网络应用程序上管理自己的电子邮件登录,因此我发送验证电子邮件并在云功能中创建经过身份验证的用户。以下是我目前创建新用户的方式:

const admin = require('firebase-admin')
admin.initializeApp()

... 

userRecord = await admin.auth().createUser({
  email: signInData.email,
  emailVerified: true
}) 

我希望将其设置为用户绝不会以任何方式创建、重置或管理密码。他们只能请求登录电子邮件。

The docs 说创建新用户时所有属性都是可选的:

Note: All of the above properties are optional. If a certain property is not specified, the value for that property will be empty unless a default is mentioned in the above table.

我不向用户提供重置密码的方法,因此将用户密码留空是否有风险?

没有风险。事实上,无密码登录似乎更安全,因为没有用户使用一些常见的弱密码或将它们写在某处的风险。此外,用户必须有权访问他们的电子邮件才能登录,因此除非他们与某人共享了他们的电子邮件或电子邮件被泄露,否则该帐户是安全的。

Is passwordless authentication more secure than passwords? 上有一个博客。我会推荐阅读它以获取详细信息。