如何使用Webview获取Google OAuth2令牌

时间:2013-03-08 00:41:48

标签: android oauth-2.0 android-webview access-token google-oauth

我正在尝试使用网页浏览器在我的Android应用内实现OAuth2。

我遇到的一个问题是在用户允许我的应用访问其帐户后,我被重定向到包含令牌的页面,但我无法获取令牌并将其设置为变量。

如何在我的WebViewClient onPageFinished方法中自动获取此令牌?

我本来打算通过页面标题,这很容易获得,但我注意到页面标题似乎有一个截断的标记(如果标记是asdfgh.12345标题只包含asdfgh)

似乎没有办法获取页面html,所以我无法解析它并抓住那个方式。

我在某处读到了应该设置oauth_token的cookie,但除非我错误地抓取了cookie,否则google似乎没有设置oauth_token cookie。

在尝试获取令牌时,我是否缺少某些内容?

1 个答案:

答案 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;
    }
});