gpt4 book ai didi

ios - 在 iOS 11 中使用 SFAuthenticationSession 创建 SSO

转载 作者:可可西里 更新时间:2023-11-01 01:14:38 25 4
gpt4 key购买 nike

我正在开发两个 iOS 应用程序,它们共享相同的钥匙串(keychain) token ,当用户通过在 Web View 中输入用户名和密码登录任一应用程序时,它们会收到这些 token 。保存在钥匙串(keychain)中的 token 有几个小时/几天的时间限制 - 当用户使用应用程序并发出请求/输入在浏览器中打开的项目时,它们会被刷新。

在 iOS 11 发布之前,应用程序中的 Web View 是一个 SFSafariViewController 实例,它非常方便,因为它在应用程序之间共享 cookie,一旦用户在一个应用程序的浏览器中登录,他就会自动登录其他应用程序,从而实现 SSO 体验。

在 iOS 11 中,SFSafariViewController 的行为发生了变化,它不再在我的两个应用程序中的不同 SFSafariViewController 实例之间共享 cookie。相反,Apple 希望我们使用 SFAuthenticationSession 来实现相同的行为。

在我的应用程序中,我有一个大约 50 行的表,几乎所有行都在 SFSafariViewController 中打开不同的 URL。所以现在,在 iOS 11 中,我需要每次都创建一个新的 SFAuthenticationSession 实例(实例创建后 URL 不能更改),为了真正显示 web View ,我需要调用 start() 方法在这种情况下。但是,这个方法只能在同一个实例上调用一次(否则它会返回'false'并且什么都不做),并且每次被调用时,它都会弹出“myapp”想要使用“mydomain.com”的通知登录。因此,这意味着我的用户每次点击表格中的一行时都会看到这条警告消息。

有没有办法让我的应用只显示一次同意警告消息,例如是第一次还是什么?我希望我的用户在我的两个应用程序中获得 SSO 体验,这就是我首先使用 SFSafariViewController 的原因,但我不希望他们在应用程序中的每次点击时看到这个恼人的警报。

最佳答案

目前无法使用 SFAuthenticationSession 使警报消息只显示一次,我们的应用遇到了同样的问题。

我和许多其他人一起向 Apple 提交了一个关于这个的错误,要求他们像你建议的那样只显示一次。 this GitHub thread结束讨论警报。

关于ios - 在 iOS 11 中使用 SFAuthenticationSession 创建 SSO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46414099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com