Android 网站上的链接,可以使用令牌登录应用程序或返回到网站

Android 网站上的链接,可以使用令牌登录应用程序或返回到网站,android,ios,mobile,cross-platform,deep-linking,Android,Ios,Mobile,Cross Platform,Deep Linking,有人请求添加到我们其中一个网站的链接,该网站可以在iOS或Android上打开我们的移动应用程序,并通过传入身份验证令牌登录到该应用程序。如果两个平台上都没有应用程序,我需要它返回到相关网站 根据我对通用链接或深度链接的理解,它们的目的是将您带到应用程序中的特定页面,而不是传递参数。自定义URL方案似乎更适合,但也不支持相同的方式,退回到web是有问题的 如果有人曾经设置过这样的东西,并有资源,我可以看看它将不胜感激 谢谢。像这样构建深度链接的身份验证系统是可能的,但有几个重要的注意事项: 用于

有人请求添加到我们其中一个网站的链接,该网站可以在iOS或Android上打开我们的移动应用程序,并通过传入身份验证令牌登录到该应用程序。如果两个平台上都没有应用程序,我需要它返回到相关网站

根据我对通用链接或深度链接的理解,它们的目的是将您带到应用程序中的特定页面,而不是传递参数。自定义URL方案似乎更适合,但也不支持相同的方式,退回到web是有问题的

如果有人曾经设置过这样的东西,并有资源,我可以看看它将不胜感激


谢谢。

像这样构建深度链接的身份验证系统是可能的,但有几个重要的注意事项:

  • 用于打开应用程序的链接需要保密。这实际上是一个密码,因此任何有权访问链接URL的人都可以使用它登录。您可以通过使用在指定时间长度后过期的链接来降低此风险
  • 链接本身的内容应该进行编码,这样,如果数据在传输过程中被窥探,您就不会无意中泄露机密信息。例如,您应该传递令牌,而不是纯文本密码
  • 您需要确定打开应用程序的用户与单击链接的用户相同。如果点击链接时已经安装了应用程序,那么这很容易,但是如果你想进行“延迟深度链接”(意味着即使尚未安装应用程序,也希望行为正常),那么你需要小心不匹配
  • URI方案和通用链接不支持传递参数,但它们可以用于构建这样的系统(例如,Slack将URI方案链接用于著名的“magic link”移动登录过程)。但是,它们只有在应用程序已经安装的情况下才能工作。两者都不允许在整个安装过程中保留上下文,这限制了它们的实用性

    更简单、更强大的选择 (完全披露:我是分支团队成员)链接可以用来推动这样的体验。与URI方案和通用链接不同,我们允许您在每个链接中传递真正的键:值参数对,并且我们拥有迄今为止该领域最好的。我会这样做:

  • 使用分支在您的网站上生成链接。在链接中包含唯一令牌作为参数。您可以为此使用分支(它甚至是内置的),或者直接转到
  • 将该唯一令牌存储在您自己的后端
  • 当应用程序打开时,您将以链接数据的形式获取参数。检查分支机构,以确保您拥有正确的用户(有关如何验证的更多信息,请参阅上面的博客文章)
  • 如果
    +match\u担保
    返回
    true
    ,请根据存储在后端的值验证返回的令牌,并让用户登录。如果
    false
    ,或者令牌未验证,请处理错误(可能是要求用户手动登录)

  • 为了使这个额外的安全性,将令牌存储在后端,并带有过期时间戳(可能是5-10分钟),如果链接过期,则不允许自动身份验证。这将防止以后在某处找到URL并重新使用,并且还将确保在以后有人检索链接内容时不会发生任何错误。

    查看最新的iOS 14 IDFA更改,从2021年初开始,此解决方案在iOS上不再可行。这在iOS 14中仍然有效,但如果未启用IDFA(任何人都不应启用),则
    match\u assurable
    将为false。