tl;博士阅读最后一段。
我正在使用 AppAuth ( https://github.com/openid/AppAuth-iOS ) 库来处理基于 OpenID 的用户身份验证,我想通过我的应用程序为其提供 SSO 体验。我的应用程序的部署目标是 iOS 11,这意味着 AppAuth 内部使用SFAuthenticationSession
. 我正在使用授权流程,这意味着通过SFAuthenticationSession
. 当用户填写并提交凭证SFAuthenticationSession
时,使用 url 调用完成(如果成功),code
可以从中解析授权。通过授权code
,令牌 POST 请求通过URLSession
独立发出SFAuthenticationSession
并被access_token
检索。
整个流程是成功的,包括检索access_token
,但是当我离开应用程序并在 Safari 中打开服务提供商提供的用户个人资料网页时,用户没有登录。我用谷歌帐户测试了相同的流程(https:// accounts.google.com)和 SSO 工作正常,例如,当我在 Safari 中打开https://mail.google.com时,我已登录。所以我怀疑我的服务提供商做错了什么。也许他们没有为我提供正确的范围?但在联系他们之前,我想排除我的任何过错。现在我最直接的想法是会话相关的 cookie 不会以某种方式存储在 Safari 中。我的问题由此而来。
我的问题。令牌 POST 请求是独立于SFAuthenticationSession
(不同的用户代理)发出的,那么如果不通过,任何与会话相关的 cookie 如何存储在设备(Safari)上SFAuthenticationSession
?有没有办法在代码中调试 cookie 存储?