是否可以通过Firebase无密码身份验证发送OTP而不是链接? 背景:

是否可以通过Firebase无密码身份验证发送OTP而不是链接? 背景:,firebase,firebase-authentication,Firebase,Firebase Authentication,我已经编写了一个应用程序,该应用程序分发一个小部件,该小部件将安装在消费者的web应用程序(如Intercom、Hotjar等)上,我希望使用无密码身份验证来验证我的用户 从表面上看,Firebase无密码身份验证会向用户的电子邮件地址发送一个链接,单击该链接后,他们将被重定向。鉴于这是一个小部件,就我看来,重定向到消费者的应用程序是不可能的,因为在firebase控制台中将上述应用程序列入白名单是没有意义的 重定向到主应用程序(您可以从中获取小部件的代码)也没有意义,因为用户将在主应用程序而不

我已经编写了一个应用程序,该应用程序分发一个小部件,该小部件将安装在消费者的web应用程序(如Intercom、Hotjar等)上,我希望使用无密码身份验证来验证我的用户

从表面上看,Firebase无密码身份验证会向用户的电子邮件地址发送一个链接,单击该链接后,他们将被重定向。鉴于这是一个小部件,就我看来,重定向到消费者的应用程序是不可能的,因为在firebase控制台中将上述应用程序列入白名单是没有意义的

重定向到主应用程序(您可以从中获取小部件的代码)也没有意义,因为用户将在主应用程序而不是小部件中进行身份验证

在我看来,理想的解决方案似乎是发送OTP代码,用户可以将其复制/粘贴到小部件本身的文本字段中

到目前为止,我所尝试的: 我已经彻底阅读了文档,尝试实现无密码身份验证,这导致了我的上述结论。由于您无法真正编辑电子邮件模板,我开始觉得此用例与Firebase Passwordless auth的用途不一致

我要找的是: 我想减少我的用户的登录摩擦,我还想验证他们的电子邮件地址,以便稍后向他们发送通知/新闻信函等

其他身份验证提供者(如基于OAuth2的提供者)围绕用户已向该特定服务注册这一事实展开。匿名身份验证允许用户登录,但不能确保每个用户都有唯一的电子邮件地址。电子邮件/密码身份验证有很大的摩擦

我正在寻找一种类似于auth0的无密码身份验证,但是与firebase auth相比,auth0对免费计划有更详细的限制

任何帮助、建议或指点都会很有帮助

资源:

Firebase无密码身份验证:


auth0无密码身份验证:

通过阅读和上的文档,我认为这不是一个完全受支持的方案。但您可以通过以下方式进行模拟:

  • 为电子邮件中的链接设置自己的处理程序页面
  • 让该页面显示链接中的
    oobCode
  • 在小部件上设置一个页面,用户在其中输入代码
  • 根据该代码和其他特定于应用程序的信息重新创建链接
  • 通过调用创建凭据
  • 这是相当复杂的,所以你必须自己权衡是否值得付出努力。更简单的流程是:

  • 发送链接
  • 让他们在其他设备上打开链接,以验证他们的帐户
  • 在小部件中提供一个按钮,该按钮用于检查他们帐户中的电子邮件地址是否已验证

  • 谢谢你的时间和努力,弗兰克!你能澄清一下“在他们的其他设备上打开链接”是什么意思吗?你指的是用户通过PC发送电子邮件,然后在手机上点击收件箱中的链接吗?这将如何解决问题?因为根据文档,在您单击链接并被重定向之前,您没有经过身份验证,对吗?哎呀。。。抱歉,我在使用电子邮件链接登录和验证电子邮件地址之间搞混了。它们都使用类似的流程,但实际上,在这种情况下,方法2不起作用。在我回答的第一种方法和在这种情况下创建自定义提供者之间。除非你想发送一条文本/短信,它更接近你想要的流量。好吧,那么当你要制作自己的身份验证系统时,有可能利用firebase自己的邮件服务器吗?例如,我在后端生成代码,然后通过firebase的邮件服务器发送?不,您必须提供自己的邮件服务器,因为允许您使用我们的邮件服务器将是一个巨大的滥用载体。常见的解决方案是使用gmail,或大型SMTP提供商之一(搜索它们,因为我不想推荐任何人而不是其他人)。