Wri*_*sCS 5 single-sign-on sfsafariviewcontroller sfauthenticationsession aswebauthenticationsession
我正在验证我们的 Web 服务ASWebAuthenticationSession,出于某种原因,最终重定向后的唯一选项是Cancel。我之前有过这个工作,即使我确实按下了取消,回调 Url 也是通过完成处理程序发送的,我能够在那里解析令牌形式。但现在我得到了错误ASWebAuthenticationSessionErrorCodeCanceledLogin。
如何ASWebAuthenticationSession显示“完成”按钮并使用回调 Url 完成处理程序?上次 iOS 更新中有什么变化或中断吗?
if (@available(iOS 12.0, *)) {
self.session = [[ASWebAuthenticationSession alloc]
initWithURL:@"http://service.com"
callbackURLScheme:@"http://website.com"
completionHandler:_sessionHandler];
[self.session start];
}
Run Code Online (Sandbox Code Playgroud)
_sessionHandler = ^(NSURL * _Nullable callbackURL, NSError * _Nullable error) {
NSLog(@"Callback Url: %@, Error: %@", callbackURL, error);
if ( callbackURL != nil ) {
__block NSString * token = [weakSelf webToken:@"token" fromUrl:callbackURL];
weakSelf.completionHandler([weakSelf parseWebToken:token], error);
}
else
weakSelf.completionHandler(nil, error);
};
Run Code Online (Sandbox Code Playgroud)
回调 URL: (null), Error: Error Domain=com.apple.AuthenticationServices.WebAuthenticationSession Code=1 "(null)"
就像我提到的,这在以前有效,我不确定它在哪里坏了。我使用的测试服务没有改变,所以我想知道它是否在框架中,或者我是否缺少其他东西。
Web 服务是否应该将特定标头发送回最终 Url,以便ASWebAuthenticationSession显示“完成”按钮并使用 Url 完成处理程序?
| 归档时间: |
|
| 查看次数: |
886 次 |
| 最近记录: |