菜鸟教程小白 发表于 2022-12-12 09:14:32

ios - 将身份验证 token 从 iOS 应用程序发送到 Safari 到 Safari


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

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

<p> <a href="https://stackoverflow.com/questions/9880922/ios-is-it-possible-to-open-nsurlrequest-directly-in-safari/" rel="noreferrer noopener nofollow">Open NSURLRequest In Safari</a> </p>

<p>身份验证 token 保存在共享钥匙串(keychain)中,Safari 是否可以访问它?</p>

<p>推荐的解决方案是什么?</p>

<p>我需要使用 <a href="https://developer.apple.com/library/ios/documentation/Security/Reference/SharedWebCredentialsRef/" rel="noreferrer noopener nofollow">Shared Web Credentials</a> ?我相信在这种情况下需要做相当多的工作。我没用过。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我认为你需要在 URL 的层面上玩。假设您从服务器向应用程序发送了一个一次性 token ,并在您发送到 Safari 的 URL 中使用它作为参数。 </p>

<p>当服务器收到 token 时,它将自动知道用户是谁,继续它的 session ,现在来自 Safari。</p>

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

<p>类似</p>

<pre><code>UIApplication.sharedApplication().openURL(NSURL(string:&#34;http://www.myWebsite/user?token=\(userToken)&#34;)!)
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 将身份验证 token 从 iOS 应用程序发送到 Safari 到 Safari,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/32995648/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/32995648/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 将身份验证 token 从 iOS 应用程序发送到 Safari 到 Safari