我使用以下來獲取身份驗證,以便我可以從Android應用程序訪問後端。這裏描述的是https://developers.google.com/identity/protocols/CrossClientAuth。GoogleAuthUtil.getToken返回無效的驗證碼
StringBuffer sb = new StringBuffer();
sb.append("oauth2:server:client_id:");
sb.append(getString(R.string.google_app_id));
sb.append(":api_scope:");
sb.append("profile email");
final String scope = sb.toString();
String token = GoogleAuthUtil.getToken(Activity.this, mAuthAccount, scope);
(mAuthAccount先前使用AccountPicker.newChooseAccountIntent設定)
上述返回有時期滿的短暫認證碼。我想檢查它對谷歌服務器,但調用https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=與返回的來自GoogleAuthUtil.getToken的令牌字符串返回「無效令牌」。
在我嘗試使用它之前,如何驗證驗證代碼未過期?
編輯:返回的字符串不是一個標記,而是一個授權代碼,可以與谷歌API交換獲得一個標記(返回的字符串以「/ 4」開頭,而不是「/ 1」或「/ 2 「如果我沒記錯的話)。
該代碼並不總是工作(在我的服務器上),我希望能夠檢查代碼是否可以使用或已過期。
結帳這樣的回答:http://stackoverflow.com/a/24982688/1484779 – jlopez
我得到{ 「錯誤」:在調用GoogleAuthUtil.getToken之後,https://www.googleapis.com/oauth2/v1/tokeninfo中的「invalid_token」} - 標記只是*生成的,並沒有調和。也許該令牌的類型是錯誤的? – wojciii
此外,我試圖使標記無效並再次調用GoogleAuthUtil.getToken()。我仍然收到來自googleapis.com的無效令牌回覆。這是我不明白的。我想知道我做錯了什麼。 – wojciii