iOS 应用上的 OAuth2 加载 uiwebview 以让用户接受连接

Posted

技术标签:

【中文标题】iOS 应用上的 OAuth2 加载 uiwebview 以让用户接受连接【英文标题】:OAuth2 on iOS app load an uiwebview to let the user accept the connection 【发布时间】:2013-06-30 10:02:11 【问题描述】:

(使用他的谷歌帐户登录后)。 我想加载一个 uiwebview 以提示用户接受连接...我必须在用户允许应用程序时拦截,然后关闭 webview 并获取作为重定向 url 中的参数返回的代码。

我该怎么办? 谢谢

【问题讨论】:

【参考方案1】:

我已经编写了一个库来执行此操作(在我自己的几个应用程序中使用它)。你可以在github上找到:LHOAuth2LoginViewController

但是,我认为我的库不能直接使用 Google API,因为我记得它们不支持 response_type=token,但您必须使用 response_type=code。此外,OAuth2 rfc6749 还存在一些其他差异。

但至少您应该了解如何拦截重定向并关闭 web 视图。您可以在-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationTypeUIWebViewDelegate方法中查看重定向url并调用dismissViewControllerAnimated:YES completion:^()

【讨论】:

以上是关于iOS 应用上的 OAuth2 加载 uiwebview 以让用户接受连接的主要内容,如果未能解决你的问题,请参考以下文章

从后台获取加载 UIWebView

通过网站执行任务并返回 iOS 应用程序

WebViewJavascriptBridge 进行js 与native通信。

iOS 应用程序上的无效重定向 URI Linkedin API

iOS 6 和 iOS 7 上的 UICollectionView 重新加载

如何在 OIDC/OAuth2 流程中识别“资源服务器”上的“客户端应用程序”