【问题标题】:Firebase email verification flow broken?Firebase 电子邮件验证流程中断?
【发布时间】:2018-01-28 19:05:37
【问题描述】:

Firebase 电子邮件/密码帐户创建和电子邮件验证似乎已损坏。看来您在创建新帐户后会自动登录(至少在 android 上),而且您似乎必须登录才能调用 user.SendEmailVerification()。用户单击电子邮件中的链接后,网页会显示

您现在可以登录到您的帐户

这很好 - 但用户已经登录了。是否可以在不自动登录的情况下创建新的电子邮件/密码帐户并在不首先登录未验证帐户的情况下请求电子邮件验证?

目前可以使用云功能创建帐户,解决了第一个问题 - 但似乎无法以这种方式请求电子邮件验证。

【问题讨论】:

  • 我投票决定将此问题作为题外话结束,因为这看起来像是功能请求或错误报告。请在此处发送 Firebase 功能请求和错误报告:firebase.google.com/support/contact/bugs-features
  • 被举报道格。请回答问题。或者确认这是一个错误。
  • 你使用的是javascript(web)、swift(ios)、objective-c(ios)还是java(android)?
  • android java sdk、C++ sdk、java 和 javascript admin sdk。

标签: authentication firebase


【解决方案1】:

无需验证用户的电子邮件地址即可登录。事实上,他们只需要知道凭据:因此电子邮件地址 + 用于电子邮件/密码身份验证的密码,无论社交提供商 (Facebook 、Twitter、Github、Google)要求或仅提供用于接收验证短信的电话号码。

如果您想限制没有经过验证的电子邮件地址的用户可以做什么,您应该检查该用户的令牌是否有经过验证的电子邮件地址。比如给limit access to the database to users with a verified email address

".read": "auth.token.email_verified === true"

对于 Cloud Storage,语法略有不同,但逻辑相同。如果您有其他想要与 Firebase 身份验证集成的后端服务,您可以decode the token 并检查email_verified 是否为真。

如果存在错误,则电子邮件消息中似乎暗示您现在可以登录 - 就好像您以前无法登录一样。正确的消息应该是用户可能必须重新验证才能让应用知道他们已经验证了他们的电子邮件地址(应用中的令牌不会立即发现这个事实,因为就是所谓的越界验证)。

【讨论】:

  • 嗯,这似乎是在邀请身份欺诈。但是,似乎其他主流应用程序(twitter、snapchat 和其他)也在做同样的事情,所以我想就这样吧。显然,通过使用您的电子邮件创建帐户来使用您的身份的人的答案是请求忘记密码并重新获得控制权。哇。错误的电子邮件被 Firebase 硬编码这一事实也是一个无法纠正的严重问题。
猜你喜欢
  • 2021-09-21
  • 2017-04-05
  • 1970-01-01
  • 2017-05-30
  • 2020-07-16
  • 2021-07-10
  • 2021-10-10
  • 2019-04-03
相关资源
最近更新 更多