【发布时间】:2020-07-20 14:23:20
【问题描述】:
tl;博士;看下面的问题
在我的应用程序中,我有一个使用 SFSafariViewController 和 ASWebAuthenticationSession 的登录,它遵循 OAuth 2.0 流程(使用 AppAuth 库)。
登录正常,cookie 按预期与 Safari 共享。由于 cookie 共享,用户在使用 Safari 应用程序时会自动登录。
但是,回到应用程序中,如果我再次启动 SFSafariViewController,cookie 就会丢失。这让我很吃惊,因为我认为 SFSafariViewController 和 Safari 的 cookie Store 是相同的,并且在登录期间它显然是在从 SFSafariVC 到 Safari 应用程序的方向上工作的。 它是否打算不以相反的方式工作 - 从 Safari 到 SFSafariViewController,或者它是一个错误?
我没有在文档中找到明确的陈述。 当然,我没有将临时会话设置为 true,但根据文档,它会做与我想要实现的相反的事情:
我还发现了某种相关的雷达,例如 http://www.openradar.me/33323462 和 http://www.openradar.me/radar?id=5036182937272320 或这个 stackoverflow 帖子:Why is SFSafariWebViewController not sharing cookies with Safari properly?,但它们没有回答我的问题。
根据this comment,如果 cookie 有到期日期(设置为未来日期),它可能会起作用。我验证了 cookie - 它们都有一个未来的到期日期。
我的问题:我做错了什么,或者这是预期的行为,SFSafariViewController 没有从同一应用程序中的早期 SFSafariViewController 实例或 Safari 获取 cookie?
【问题讨论】:
标签: ios cookies safari openid-connect sfsafariviewcontroller