我正在尝试使用网页浏览器在我的Android应用内实现OAuth2。
我遇到的一个问题是在用户允许我的应用访问其帐户后,我被重定向到包含令牌的页面,但我无法获取令牌并将其设置为变量。
如何在我的WebViewClient onPageFinished方法中自动获取此令牌?
我本来打算通过页面标题,这很容易获得,但我注意到页面标题似乎有一个截断的标记(如果标记是asdfgh.12345标题只包含asdfgh)
似乎没有办法获取页面html,所以我无法解析它并抓住那个方式。
我在某处读到了应该设置oauth_token的cookie,但除非我错误地抓取了cookie,否则google似乎没有设置oauth_token cookie。
在尝试获取令牌时,我是否缺少某些内容?
答案 0 :(得分:0)
我假设您使用令牌作为response_type。
一种方法是覆盖WebViewClient的shouldOverrideUrlLoading方法:
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith(REDIRECT_URI)) {
// grab the token from the url
...
return true;
}
return false;
}
});