firebase 如何通过电子邮件链接/magic-url登录以打开PWA,而不是通过浏览器在iOS设备中验证用户?

pftdvrlh  于 2022-11-25  发布在  PWA
关注(0)|答案(2)|浏览(188)

我有一个pwa应用程序,它只通过电子邮件链接登录来实现一种身份验证方法。(我使用的是firebase的Passwordless authentication with email link策略)
我可以打开带有链接的邮件,但是验证用户身份的链接将打开默认浏览器(例如Safari),而不是安装在主屏幕中的PWA。有人知道如何解决这个问题吗?如果用户无法在PWA中进行验证,他们将无法使用安装的PWA。:(

yks3o0rb

yks3o0rb1#

正如PeteLe所指出的,这在目前是不可能的。用户的电子邮件应用在设备的默认浏览器中打开URL,即使你修改了电子邮件模板,目前也没有办法在iOS和Android中使用自定义处理程序来定位PWA,尽管there are proposals可以实现这一点。(有Android Intent过滤器,但它们没有一致的行为,只能在Android上工作。)
然而,只要有足够的胶带,一切皆有可能,所以这里有一个可能的解决方案:
1.在PWA中创建一个登录页面,其中包含一个email字段和一个submit按钮。
1.当用户输入其电子邮件时,会出现一个one-time password字段,其中包含检查其电子邮件的说明。
1.对后端API的异步请求生成并存储一次性密码,然后通过电子邮件将其发送给用户。
1.用户切换到他们的电子邮件应用程序,复制密码,然后将其粘贴到one-time password字段中。
1.将电子邮件和一次性密码传递给后端API,以创建一个Firebase管理员的自定义令牌,用户可以在客户端使用该令牌进行身份验证。
此解决方案的优势在于,它要求用户返回PWA以完成身份验证,同时保持电子邮件身份验证流程。
我有一个类似的需要,以编程方式打开一个PWA,经过几个星期的尝试,只是没有一致的方式来打开一个PWA在所有设备。

pkwftd7m

pkwftd7m2#

您可以在安装PWA沿着注册protocol handler,它将处理特定的自定义协议(例如:web+myapp://)。因此,当用户单击链接时,它应该是由PWA打开的。
截至11月22日,它已经完全支持Chrome Android(不是Firefox,也不是Safari)。
参考:https://developer.mozilla.org/en-US/docs/Web/Manifest/protocol_handlers#browser_compatibility

相关问题