【发布时间】:2019-10-04 13:28:25
【问题描述】:
我安装了 iOS 13,无法通过 Safari 进行身份验证。
除了self.authSessionAS.presentationContextProvider = self;
self.authSessionAS = [[ASWebAuthenticationSession alloc]initWithURL:[[NSURL alloc] initWithString:self.authUrl] callbackURLScheme:@"app://" completionHandler:^(NSURL * _Nullable callbackURL, NSError * _Nullable error) {
if(callbackURL)
{
self.resultStream(callbackURL.absoluteString);
}else
{
self.resultStream(@"");
}
self.resultStream = NULL;
}];
self.authSessionAS.presentationContextProvider = self;
[self.authSessionAS start];
【问题讨论】:
-
同意。有一些在 iOS 12 和 13 上运行的代码......使用 iOS 12,它可以正确检测 cookie 并使用它来预填充登录屏幕。在 iOS 13 中,它不会检测 cookie 并显示默认登录屏幕。大概是 iOS 13 中的一个错误...
-
附录...如果应用程序在 Xcode 10(iOS 12 版本)中编译,则 ASWebAuthenticationSession 广泛适用于 iOS 13(尽管它不会获取 cookie)。
-
与 Xcode 11 相比,ASWebAuthenticationSession 根本无法在 iOS 13 上运行——完全损坏。不知道如果在 Xcode 11 上编译并在 iOS 12 上运行会发生什么。
-
我找到了这个解决方案dev.to/robotsquidward/…,但是我不知道如何在objective-c和flutter中实现它。
-
flutter 开发者请查看pub.dev/packages/flutter_web_auth
标签: ios objective-c flutter