我在我的应用程序和firebase中使用nuxt(vue)对用户进行身份验证。为此,我向axios发送了发布请求。到目前为止,一切都很好。我得到一些凭证的回复。然后,我使用axios发送另一个发布请求,以向用户发送验证电子邮件。这也起作用。但是我不知道用户通过单击链接来验证电子邮件地址的信息保存在哪里。因此,我不能以此为条件进行身份验证。
如果我使用电子邮件和密码登录而不验证电子邮件,也不会收到错误消息。
https://firebase.google.com/docs/reference/rest/auth/#section-create-email-password
https://firebase.google.com/docs/reference/rest/auth/#section-send-email-verification
非常感谢您的提前帮助。
答案 0 :(得分:0)
如果您不验证电子邮件,Firebase不会阻止访问,因为许多应用程序都不需要这样做。您可以通过安全规则来强制执行该操作。示例:
已验证用户的ID令牌将包含设置为true的"$uid": {
".write": "auth.token.email_verified === true && auth.uid === $user",
".read": "auth.token.email_verified === true && auth.uid === $user"
}
。
当用户单击电子邮件验证链接时,Firebase Auth将存储该值。要在用户身上检测到这一点,您需要email_verified
并将user.reload()
设置为true。要强制ID令牌接受这些更改,可以强制刷新令牌user.emailVerified
。
答案 1 :(得分:0)
非常感谢您的快速答复。我正在为数据库使用MongoDB,但我不知道如何使用MongoDB处理这种情况。但是,非常感谢您的帮助!我确信其他人会需要它。祝你有美好的一天!