iOS 应用程序如何访问 Safari cookie?

Posted

技术标签:

【中文标题】iOS 应用程序如何访问 Safari cookie?【英文标题】:How does an iOS app access Safari cookies? 【发布时间】:2012-01-03 14:14:37 【问题描述】:

这是 Facebook 的 ios 教程的链接。 https://developers.facebook.com/docs/mobile/ios/build/

谁能解释一下这是什么意思:

"如果设备运行在支持多任务处理的iOS版本,但没有安装3.2.3或更高版本的Facebook应用程序,SDK将在Safari中打开授权对话框。用户授权后或撤销授权,Safari 重定向回调用应用程序。类似于基于 Facebook 应用程序的授权,这允许多个应用程序通过 Safari cookie 共享同一个 Facebook 用户 access_token。"

大多数帖子都说,像这样: https://***.com/questions/531712/reading-cookies-using-xcode-on-the-iphone 由于iOS的沙盒环境无法访问safari cookie,那怎么可能呢?

如果可能的话,多个应用程序如何使用相同的访问令牌。在我看来,不同的应用程序可能有不同的权限。

【问题讨论】:

【参考方案1】:

在这种情况下,您的应用不会读取 cookie。我认为它只是在 Safari 中打开了一个 URL。然后在 Safari 中运行的一些 Facebook 代码检查是否存在有效的 Facebook 会话,然后在您的应用程序中调用回调函数。当然,所有访问令牌以及设备上所有不同应用程序的不同权限都单独保存在 facebook 会话中,这样应用程序就不会共享权限。只有用户被保存在会话中(很可能只有一个用户使用移动设备),因此他不必一遍又一遍地登录。相反,他只是点击“登录”或“不,我不是某某”。

【讨论】:

以上是关于iOS 应用程序如何访问 Safari cookie?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SFSafariViewController 从 iOS Safari 应用程序中读取 Cookie

iOS 和 OS X 上的原生应用程序能否写入和读取 Safari 的网站数据,例如 cookie 和 Web Storage?

Facebook iOS SDK 不存储用于访问的 cookie

如何访问之前在 Safari 应用程序中设置的 SFSafariViewController 中的值

facebook iOS SDK 授权,无需重定向到 safari

$_COOKIE 在 Safari iOS 中不起作用