【问题标题】:Send authentication token to Safari from iOS App to Safari将身份验证令牌从 iOS 应用程序发送到 Safari 到 Safari
【发布时间】:2015-10-07 14:57:23
【问题描述】:

我的应用中有一些 URL,它们通过 openURL API 将用户带到 Safari 浏览器。 我的目标是从应用程序将身份验证令牌发送到 Safari,以便用户使用此令牌登录。我们的服务器要求将此票证作为标头信息的一部分发送。是否有可能将自定义标头与NSURL 一起发送?

我检查了下面的链接,该链接讨论了查询组件,但服务器不处理它,他们更喜欢不同的解决方案。在外部浏览器中打开 URL 时,Android 可能会发送额外的标头,所以现在所有人都在关注 iOS :-)。

Open NSURLRequest In Safari

身份验证令牌保存在共享钥匙串中,Safari 是否可以访问它?

推荐的解决方案是什么?

我需要使用Shared Web Credentials吗?我相信在这种情况下需要做相当多的工作。我没用过。

【问题讨论】:

    标签: ios authentication safari nsurl openurl


    【解决方案1】:

    我认为你需要在 URL 的层面上玩。假设您从服务器向应用程序发送一次性令牌,并在您发送到 Safari 的 URL 中使用它作为参数。

    当服务器收到令牌时,它会自动知道用户是谁,继续它的会话,现在来自 Safari。

    您提供的第一个链接解释了这个想法,我认为它适合您,但您还需要更新后端以执行此类任务。

    类似

    UIApplication.sharedApplication().openURL(NSURL(string:"http://www.myWebsite/user?token=\(userToken)")!)
    

    【讨论】:

    • 我的疑问是如何将令牌作为参数发送到 Safari? Querycomponent 是唯一的选择?
    • 我想如果你要启动 Safari。我找不到允许处理标题左右的反例。无论如何,我编辑添加了一个 Swift 代码的 sn-p 来完成这项工作。
    • 最后决定使用 webview,因为我们的 auth ticket 对于 url 来说太长了,感谢您的帮助
    【解决方案2】:

    最终决定使用 webview,因为我们的 auth 票对于 url 来说太长了,感谢您的帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-13
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2016-08-07
      • 2019-08-31
      • 1970-01-01
      相关资源
      最近更新 更多