对于移动应用中的Oauth2,您可以设置redirect_uri一些类似于dumy的URL http://localhost/redirect/,然后使用webview的"onload"事件来检查URLaccess_token
例如,在iOS上,您可以加载的WebView授权网址,并使用委托方法检查redirect_uri的access_token是这样的:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSURL *Url = [request URL];
...
}
Run Code Online (Sandbox Code Playgroud)
您也可以使用HTML5/JavaScript在Phonegap应用中执行此操作InAppBrowser:
var loginWindow = window.open(login_url, '_blank', 'location=yes');
$(loginWindow).on('loadstart', function(e) {
var url = e.originalEvent.url;
var access_token = url.split("access_token=")[1];
...
}
Run Code Online (Sandbox Code Playgroud)
完整代码:https://github.com/krisrak/jquery-cordova-oauth2
隐式授予类型不太适合移动应用程序。这是相应的 RFC (RFC 6749) 对此的说明:
隐式授权是一种简化的授权代码流,针对使用 JavaScript 等脚本语言在浏览器中实现的客户端进行了优化。
对于移动应用程序,如果您要为自己的服务制作官方应用程序,则最好使用资源所有者密码凭据流程;如果您要访问第三方 Web 服务,则最好使用授权代码流程。
| 归档时间: |
|
| 查看次数: |
2308 次 |
| 最近记录: |