【问题标题】:Firebase authentication without email没有电子邮件的 Firebase 身份验证
【发布时间】:2021-10-05 17:50:57
【问题描述】:
目前,我正在尝试开发一个门户网站,我希望允许特定用户进入网站。这意味着我想使用特定的用户名和密码进入我的身边,而不使用任何电子邮件地址。怎么可能?我看到对于自定义登录,我必须使用身份验证服务器,并且在 Firebase 中的 Functions 选项卡中是允许的。但我必须购买它。是否有任何解决方法可以在没有电子邮件的情况下创建我的自定义登录?
【问题讨论】:
标签:
firebase
firebase-authentication
【解决方案1】:
Firebase 身份验证没有 username-password 身份验证。您可以做的最好的事情是每当用户输入用户名时,您可以附加@yourapp-com 以使格式类似于电子邮件并将其与密码一起使用。
当用户尝试登录时使用相同的方法,当他们输入他们的用户名时,附加该域并使用signInWithEmailAndPassword 方法。所以从技术上讲,您正在使用电子邮件和密码(但电子邮件无法接收电子邮件),但您的用户只输入用户名和密码。
这很容易解决,但您也可以将用户名和密码存储在数据库中。但是,请确保您正确散列数据库中的密码。您可以使用云功能对用户进行身份验证。身份验证流程如下:
- 用户输入用户名和密码
- 触发云功能,然后验证用户名和密码
- 如果密码匹配,则使用 Admin SDK 生成自定义令牌并将其发送回客户端
- 使用
signInWithCustomToken 方法并使用该令牌登录用户。