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

标签 ios firebase authentication progressive-web-apps

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

最佳答案

正如 PeteLe 所指出的,目前还不可能开箱即用。用户的电子邮件应用程序会在设备的默认浏览器中打开 URL,即使您修改了电子邮件模板,目前也无法使用跨 iOS 和 Android 的自定义处理程序来定位 PWA,尽管 there are proposals 可以做到这一点。 (有 Android Intent 过滤器,但它们没有一致的行为,仅适用于 Android。)
然而,只要有足够的胶带,一切皆有可能,所以这是一种可能的解决方案:

  • 在 PWA 中创建一个登录页面,其中包含 email 字段和 submit 按钮。
  • 当用户输入他们的电子邮件时,会出现一个 one-time password 字段,其中包含检查电子邮件的说明。
  • 对后端 API 的异步请求生成并存储一次性密码,然后通过电子邮件将其发送给用户。
  • 用户切换到他们的电子邮件应用程序,复制密码,然后将其粘贴到 one-time password 字段中。
  • 将电子邮件和一次性密码传递给您的后端 API,以使用 Firebase 管理员创建一个自定义 token ,用户可以在客户端进行身份验证。

  • 此解决方案的优势在于它要求用户返回 PWA 以完成身份验证,同时保持通过电子邮件进行身份验证的流程。
    我有类似的需要以编程方式打开 PWA,经过数周的尝试,没有一致的方法可以在所有设备上打开 PWA。

    关于ios - 如何通过电子邮件链接/magic-url 登录以打开 pwa 而不是浏览器来验证 iOS 设备中的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65965020/

    相关文章:

    ios - 如何在父 UIView 中水平居中任何 subview 而不是垂直居中?

    swift - 将 textfield.text 与 firebase 字符串 swift 进行比较

    PHP 到 Google WebApp 返回 "<H1>Moved Temporarily</H1>The document has moved"

    javascript - 如何从 NodeJS 中的 JSONObject 获取值?

    c# - Microsoft Graph API 访问 token

    android - iOS 中的 Cordova geoLocation 插件无法正常工作

    jquery - 在 iphone 中滚动时光标溢出 - safari

    firebase - 如何在不带X的Flutter中为iOS添加Firebase SDK-代码

    ios - Swift 4数据读取选项

    android - 如何使用fcm在android中实现多个通知onclick?