为了账号安全,请及时绑定邮箱和手机立即绑定

用户名认证而不是电子邮件

用户名认证而不是电子邮件

倚天杖 2019-10-21 12:43:35
使用Firebase,我可以使用电子邮件地址注册和登录用户。但是,如果我希望应用程序基于用户名怎么办?例如,您将使用“ Bobzilla”而不是“ Bob@mail.com”登录?Firebase是否有可能?
查看完整描述

3 回答

?
30秒到达战场

TA贡献1828条经验 获得超6个赞

Firebase身份验证没有内置默认的用户名和密码提供程序。但是您可以使用Firebase文档中的说明创建自己的自定义身份提供程序。这需要在受信任的环境中运行的代码,您可以针对该环境使用自己的服务器或Cloud Functions for Firebase。现在,在functions-samples repo中甚至有一个示例。


或者,您可以使用内置的电子邮件+密码提供程序,而只需在用户名后面添加任何域。因此,一旦确定了用户名,请向注册用户<username>@vikzillasapp.com。


请注意,由于Firebase使用电子邮件地址发送密码重设电子邮件,因此用户忘记密码将无法重设密码。


查看完整回答
反对 回复 2019-10-21
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

除了使用为用户分配电子邮件地址的方法外,在数据库中查找电子邮件地址可能是更好的选择。

一个例子是:

  1. 提示用户名使用用户名和密码登录

  2. 验证用户名是否存在于您的数据库中,并检索该帐户的相应电子邮件地址

  3. 将此电子邮件地址无缝传递到登录过程


查看完整回答
反对 回复 2019-10-21
?
HUX布斯

TA贡献1876条经验 获得超6个赞

您可以使用firebase自定义auth。自定义身份验证是一种用户可以使用自定义令牌登录应用的方法。

但是,您需要后端代码,以便在用户向该后端发送用户名和密码时创建自定义令牌。

幸运的是,现在有了带有http事件的firebase云功能,可以轻松解决您的问题。步骤是:

  1. 用户通过查询参数(GET)或请求正文(POST)将用户名和密码发送到云功能网址

  2. 云功能将检查用户名和密码是否有效(例如:来自实时数据库)

  3. 如果用户名和密码有效,则云功能将使用userId创建自定义令牌(您需要保存userId)。然后将其发送到响应正文

  4. 然后,客户端可以使用该customToken登录


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 646 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信