Firebase 确保用户在登录之前验证了他们的电子邮件 我正在添加一个反应应用程序中的FiaseBase/密码符号。具体来说,这是一个电子商务网站,用户在创建帐户(如购物车数据)之前将匿名登录

Firebase 确保用户在登录之前验证了他们的电子邮件 我正在添加一个反应应用程序中的FiaseBase/密码符号。具体来说,这是一个电子商务网站,用户在创建帐户(如购物车数据)之前将匿名登录,firebase,firebase-authentication,Firebase,Firebase Authentication,以下是理想的用户流: 用户通过提供电子邮件和密码进行注册 用户未立即登录,而是收到验证电子邮件 如果用户在验证其电子邮件之前尝试登录,则无法登录 然后用户单击验证链接并可以登录 我对#3有问题,因为它似乎是检查电子邮件是否被验证的唯一方法,它是通过呼叫: const{user}=wait firebase .auth() .使用电子邮件和密码登录(电子邮件、密码) if(user?.emailVerified)//让他们进入仪表板 但是,即使电子邮件未经验证,此过程也会登录用户。这会破坏匿名帐

以下是理想的用户流:

  • 用户通过提供电子邮件和密码进行注册
  • 用户未立即登录,而是收到验证电子邮件
  • 如果用户在验证其电子邮件之前尝试登录,则无法登录
  • 然后用户单击验证链接并可以登录
  • 我对#3有问题,因为它似乎是检查电子邮件是否被验证的唯一方法,它是通过呼叫:

    const{user}=wait firebase
    .auth()
    .使用电子邮件和密码登录(电子邮件、密码)
    if(user?.emailVerified)//让他们进入仪表板
    
    但是,即使电子邮件未经验证,此过程也会登录用户。这会破坏匿名帐户上的数据。合并这两个帐户是不可能的,因为用户认为他们没有登录(因此,如果帐户已经合并,可能会导致用户体验问题)

    有什么想法吗?

    如果您正在使用,则无法阻止用户在没有经过验证的电子邮件地址的情况下登录。你当然可以阻止他们使用你的应用程序和访问数据,但你不能阻止他们登录

    <>如果你想确保用户在他们的电子邮件地址被验证后只能登录,请考虑使用。然后,您可以稍后允许他们在同一帐户上设置密码,可以通过Admin SDK,也可以通过创建电子邮件+密码帐户并将其与电子邮件链接帐户链接。另请参阅上的文档,了解此处的一些细微差别