1

我正在尝试使用 webviews 在我的 android 应用程序中实现 OAuth2。

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

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

本来打算按页面标题去的,很容易搞定,但是发现页面标题好像有个截断的token(如果token是asdfgh.12345则标题只包含asdfgh)

似乎没有获取页面html的方法,所以我无法解析它并以这种方式获取。

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

在尝试获取令牌时我缺少什么吗?

4

1 回答 1

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;
    }
});
于 2013-04-10T23:07:57.217 回答