问题描述
我正在尝试对现有项目设置电子邮件验证。我偶然发现了两个不同的文档,它们为此使用了两种不同的方法,但仍然遵循相同的流程
我看到的唯一区别是我们必须在使用 ActionCodeSettings
时专门创建 sendSignInLinkToEmail
对象,以便指定它用于验证,而使用 {{ 时不需要这样做1}}。
我假设,文档解释的主要区别在于,一个用于对用户进行身份验证,另一个用于验证用户。尽管 this security StackExchange post 帮助我了解了一点差异,但我仍然对它在用户登录体验的上下文中如何区分感到困惑
解决方法
一个用于身份验证,另一个用于验证电子邮件。
sendEmailVerification 是一种一次性事件,用于验证用户的电子邮件地址是否有效。它在 User object 中设置 emailVerified
值。一旦电子邮件被验证,你就不会再打电话给它。这是在注册过程中使用的。
sendSignInLinkToEmail 是一种身份验证方法,允许用户通过单击通过电子邮件发送给他们的链接进行登录,而不是输入电子邮件/密码或通过联合帐户登录。如果这是用户首选的身份验证方法,则每次用户想要登录时都会调用此方法。