Firebase 电子邮件验证行为

Posted

技术标签:

【中文标题】Firebase 电子邮件验证行为【英文标题】:Firebase email verification behavior 【发布时间】:2017-05-10 15:57:38 【问题描述】:

我有一个关于 Firebase 电子邮件验证如何工作的问题。

案例:

    我的用户登录了我的网站(使用设备 A)。 他们使用其他浏览器或设备(设备 B)创建了另一个帐户,但他们使用他已登录的浏览器和设备(即设备 A)打开电子邮件验证链接。

已经登录的用户(在设备 A 中)发生了什么事? firebase 是否已将其注销或仅验证新电子邮件,但仍使用当前用户登录?

【问题讨论】:

【参考方案1】:

电子邮件验证在带外进行,在重新加载之前不会影响任何现有的 Firebase 状态。如果用户验证他们的电子邮件,您必须调用 firebase.auth().currentUser.reload() 来更新 emailVerified 属性。如果您使用带有 emailVerified 字段的 firebase 规则,则需要在验证后强制刷新令牌 (firebase.auth().currentUser.getToken(true))。您可以使用 Firebase 实时数据库在电子邮件验证中设置一些标志,并在现有会话中检测它以强制用户重新加载。这需要您构建自己的自定义电子邮件验证处理程序:https://firebase.google.com/docs/auth/custom-email-handler

【讨论】:

我想你没有得到我的问题。我已经更新了我的问题以使其清楚。对不起,谢谢。 我回答了。电子邮件验证对现有会话没有影响。现有的登录用户将保持登录状态,即使他们是不同的用户并且无论他们使用的是什么设备。 哦,我明白了,@bojeil。抱歉,感谢您的回答。同样的情况如何,但不是验证电子邮件,而是处理密码重置。密码重置对现有会话也没有影响吗? 密码重置将使同一帐户的任何现有会话的令牌过期。需要重新认证。 是的,如果您在其他帐户上重置密码,其他用户将保持身份验证。

以上是关于Firebase 电子邮件验证行为的主要内容,如果未能解决你的问题,请参考以下文章

firebase 电子邮件验证网站

Firebase 电子邮件验证无法正常工作

Expo - Firebase 电子邮件验证

firebase:如何链接电子邮件验证和密码

如何知道用户电子邮件是不是在 Firebase 控制台中得到验证?

Firebase电子邮件验证Swift