gpt4 book ai didi

ios - 登录 SFAuthenticationSession 然后在 SFSafariViewController 中打开一个执行 SSO 的链接

转载 作者:行者123 更新时间:2023-12-01 16:01:57 26 4
gpt4 key购买 nike

我正在使用 AppAuth-iOS 进行 AD B2C 登录,AppAuth-iOS 使用 SFAuthenticationSession 在 iOS 11+ 上发出身份验证请求。我假设当我调用 SFSafariViewController 打开一个指向与 B2C 进行 SSO 的 web 应用程序的链接时,它会自动对用户进行身份验证。但是,这似乎不起作用。

它不应该工作吗?我做错了吗?

我尝试在我的项目中修改 AppAuth-iOS pod,并尝试在 webview 中打开身份验证请求并使用 webview 打开链接.. 不起作用。另外,我读过关于 Safari 不共享 cookie 的实例,这也适用于 webview 吗? webview 是否使用 Safari 浏览器?我还阅读了与此问题相关的其他内容,但它们让我感到困惑,最后,对我来说,它们并没有结束。

这是来自 AppAuth-iOS 的 OIDExternalUserAgentIOS.m 的代码,用于将应用程序与 B2C 登录进行通信:

SFAuthenticationSession *authenticationVC =
[[SFAuthenticationSession alloc] initWithURL:requestURL
callbackURLScheme:redirectScheme
completionHandler:^(NSURL * _Nullable callbackURL,
NSError * _Nullable error) {
__strong OIDExternalUserAgentIOS *strongSelf = weakSelf;
if (!strongSelf)
return;
strongSelf->_authenticationVC = nil;
if (callbackURL) {
[strongSelf->_session resumeExternalUserAgentFlowWithURL:callbackURL];

我使用此代码打开链接,
SFSafariViewController *svc = [[SFSafariViewController alloc] initWithURL:URL];
svc.delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
[self presentViewController:svc animated:YES completion:nil];

我希望 SSO 将在 SFAuthenticationSession 和 SFSafariViewController 之间工作。

非常感谢你。

最佳答案

我假设您尝试使用 WKwebView。如果是这样,wkwebview 不会与 Safari 网络浏览器共享 cookie。每个 web View 都在不同的进程中运行,而不是我们有一个隔离。

关于ios - 登录 SFAuthenticationSession 然后在 SFSafariViewController 中打开一个执行 SSO 的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54432641/

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