gpt4 book ai didi

ios - SFAuthenticationSession/ASWebAuthenticationSession 和注销

转载 作者:IT王子 更新时间:2023-10-29 05:00:25 24 4
gpt4 key购买 nike

我计划将应用程序从使用 SFSafariViewController 的旧 OAuth 流程切换到使用 iOS 11 的 SFAuthenticationSession 的新流程。登录不是问题,转移到新 API 花了我几分钟时间来实现。但是注销让我感到困惑。

如何?

我在文档的任何地方都找不到任何提及要提供注销选项的内容。使用旧的 SFSafariViewController 使 cookie 无效?不,它们不再与 SFAuthenticationSession 共享。一旦我重新启动身份验证 session ,用户就会自动登录并且没有出路。那么如何启用注销呢?还是我只是忽略了一些非常明显的事情?

更新:我找到了一种技术意义上的“有效方式”,但它对用户来说太疯狂了:在清除 cookie 的注销页面上打开一个新的 SFAuthenticationSession。但这意味着当注销时,警报 View 会再次询问用户是否愿意通过该服务登录。如果选择yes(“登录”),将打开 cookie 清除注销页面,用户必须手动关闭 View ,这可以被完成处理程序捕获,我们知道我们可以打开再次登录 View .. 显示登录提示以注销?我真的不喜欢这个解决方案。

有什么想法吗?我是否仍然忽略了一个完全显而易见的解决方案?

更新 2:由于到目前为止还没有人对此问题有任何线索,这可能不是一件容易的事。我已经通过他们的报告工具向 Apple 提出了一个建议,要么阐明如何处理这个问题,要么在不可用的情况下将其构建到 API 中。如果我得到答案,我会发布。

更新 3:在进一步思考这个问题后,我们找到了另一种可能的(尽管也没有吸引力)解决方案如果您可以影响 OAuth 提供程序的登录页面:使 cookie 的生命周期非常短。然后可以在不自动登录的情况下打开登录页面。然而,这会破坏在应用程序之间共享登录 session 的全部目的。您需要能够影响登录页面。

更新 4:由于 iOS 12 SFAuthenticationSession 已弃用并被 ASWebAuthenticationSession 取代。但是,ASWebAuthenticationSession 不会更改有关注销的任何内容。还是不行。和以前一样的问题。

最佳答案

对于 ASWebAuthenticationSession,在调用 .start() 之前将 .prefersEphemeralWebBrowserSession 设置为 true 将强制用户在浏览器 session 中输入凭据。虽然与注销不同,但这将允许新用户在启动下一个 session 时使用不同的凭据登录。

关于ios - SFAuthenticationSession/ASWebAuthenticationSession 和注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47207914/

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