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 电子邮件验证行为的主要内容,如果未能解决你的问题,请参考以下文章