0

我想在我的android應用中使用webviews實現OAuth2。如何使用Webview獲取Google OAuth2令牌

我遇到的一個問題是在用戶允許我的應用程序訪問其帳戶後,我被重定向到包含該標記的頁面,但我無法獲取標記並將其設置爲變量。

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

我最初打算通過頁面的標題,這是很容易得去,但我注意到,該網頁的標題似乎有一截斷令牌(如果令牌是asdfgh.12345標題只包含asdfgh)

似乎沒有方法來獲取頁面的HTML,所以我不能解析它並以這種方式抓取。

我在某處閱讀應該設置oauth_token cookie,但除非我不正確地抓取cookie,否則google似乎不會設置oauth_token cookie。

有沒有什麼我失蹤試圖獲得令牌?

回答

0

我假設你使用token作爲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; 
    } 
});