我正在嘗試使用Google OAuth登錄&註冊我的Web服務器應用程序。 這是我所引用的頁面:https://developers.google.com/identity/sign-in/web/backend-auth,但我堅持使用Google Client API,即文檔中下面提到的TokenVerifier。我試圖找到一些例子,但我找不到一個例子,因爲我不知道如何處理樣例顯示的方法中的參數。Google Oauth - TokenVerifier如何使用?
import com.google.api.client.googleapis.auth.oauth2.GoogleIdToken;
import com.google.api.client.googleapis.auth.oauth2.GoogleIdToken.Payload;
import com.google.api.client.googleapis.auth.oauth2.GoogleIdTokenVerifier;
...
GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(transport, jsonFactory)
.setAudience(Arrays.asList(CLIENT_ID))
.build();
// (Receive idTokenString by HTTPS POST)
GoogleIdToken idToken = verifier.verify(idTokenString);
if (idToken != null) {
Payload payload = idToken.getPayload();
if (payload.getHostedDomain().equals(APPS_DOMAIN_NAME)
// If multiple clients access the backend server:
&& Arrays.asList(ANDROID_CLIENT_ID, IOS_CLIENT_ID).contains(payload.getAuthorizedParty())) {
System.out.println("User ID: " + payload.getSubject());
} else {
System.out.println("Invalid ID token.");
}
} else {
System.out.println("Invalid ID token.");
}
例如,我知道這些CLIENT_ID,ANDROID_CLIENT_ID,IOS_CLIENT_ID參數示例代碼(在參考頁)的意思,但服務器只接收id_token,這基本上是一個字符串文本。 (這是由谷歌API在客戶端,JavaScript)
所以,我沒有這些參數值從客戶端傳遞到服務器。我知道谷歌顯示另一種方式:tokeninfo端點,但他們提到,它只有100用戶/月只。 (如果我正確翻譯了它)但是,對於tokeninfo端點方式,它們返回包含客戶端ID的JSON文件,我認爲這將是我之前提到的參數的值,但我不想使用該令牌信息端點方法。
所以,我的問題是,我怎樣才能得到正確的參數值的示例代碼,顯示在谷歌文檔頁面?我只接收來自客戶端的id_token值。
對不起,延遲迴復。如果我的應用程序只期望基於Web的用戶呢?只需使用網絡瀏覽器登錄即使設備也不同。 –