Firebase 身份验证:如何处理使用非自有电子邮件地址的用户?



场景:

  • Bob创建了一个带有电子邮件地址的Firebase帐户alice@example.com他不拥有(无论是偶然还是恶意(。

  • Bob创建了几个私有的Firestore记录(例如,用户评论/消息(,这些记录链接到他的用户ID,只有Bob才能读写。

  • 爱丽丝试图注册,却发现了她的电子邮件alice@example.com已被占用。我们如何在Alice无法访问Bob的Firestore记录以及Bob无法访问她将继续创建的记录的情况下,为她提供一个链接到她的电子邮件地址的用户帐户?

一些想法:

  • 您可以向Alice发送密码重置电子邮件,这将使Bob注销,但随后Alice将看到Bob在登录时创建的记录。

  • 您可以使用云功能,1(删除Bob的(未经验证的电子邮件(用户或更改其电子邮件地址2(为Alice创建一个新用户,并设置电子邮件地址验证标志,然后发送密码重置电子邮件。

有更简单的方法吗?

您可以使用一个(或多个!(Firebase的身份验证机制来帮助确定所有权。

  1. 您可以使用第三方身份验证(FB、Google、Twitter、Github(来帮助澄清电子邮件地址的所有权。(最简单,imo(

  2. 您可以通过firebase.auth().currentUser.sendEmailVerification()验证用户的电子邮件地址https://firebase.google.com/docs/auth/web/passing-state-in-email-actions

  3. 您可以使用电子邮件链接进行注册:https://firebase.google.com/docs/auth/web/email-link-auth

从他们的文档:

通过电子邮件登录有很多好处:

  • 对用户进行身份验证的能力,同时验证用户是否是电子邮件地址的合法所有者

相关内容

最新更新