首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未为ASWebAuthenticationSession调用会话完成处理程序

未为ASWebAuthenticationSession调用会话完成处理程序
EN

Stack Overflow用户
提问于 2020-03-16 16:48:08
回答 1查看 1.1K关注 0票数 0

我正在尝试使用ASWebAuthenticationSession web视图。身份验证完成后,不会调用会话完成处理程序。因此,web视图不会忽略。

代码语言:javascript
复制
guard let authURL = URL(string: "https://github.com/login/oauth/authorize?client_id=<client_id>/") 
else { return }
let scheme = "octonotes"
session = ASWebAuthenticationSession.init(url: authURL, callbackURLScheme: scheme, completionHandler: { callbackURL, error in
       // Handle the callback.
       print(callbackURL!)
       print(error!)      
        })
session?.presentationContextProvider = self
session?.start()

我已经在info.plist中设置了回调url方案。在目标->信息-> URL类型中也会进行更新,如下所示:URL Types

运行上述代码后,将显示ASWebAuthenticationSession web视图,该视图为用户提供登录页面。身份验证完成后,web视图不会与WKWebView不同。在web视图的左上角有cancel选项,它会调用出错的完成处理程序。

有没有办法在身份验证会话完成后关闭webview?

EN

回答 1

Stack Overflow用户

发布于 2020-04-18 20:03:59

看起来您的authURL中缺少重定向URI -因此GitHub不知道将成功的身份验证重定向到哪里。

试试这个:

代码语言:javascript
复制
let scheme = "octonotes"
guard let authURL = URL(string: "https://github.com/login/oauth/authorize?client_id=<client_id>&redirect_uri=\(scheme)://authcallback")

请记住,您可能还遗漏了一些其他参数,请在此处查看您可以提供https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#redirect-urls的其他参数

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60702798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档