【发布时间】:2020-06-29 22:22:04
【问题描述】:
我正在使用 google 登录来访问网络服务器中的一些客户资料 对于浏览器访问来说工作得很好 从 android 客户端应用程序获取 idtoken 并将其发送到服务器,但我可以让它工作,无论我做什么 控制台开发人员有 3 个 id https://pasteboard.co/IZHiS6h.png 和验证者
package com.mypackage.beans;
import com.google.api.client.googleapis.auth.oauth2.GoogleIdToken;
import com.google.api.client.googleapis.auth.oauth2.GoogleIdTokenVerifier;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.client.googleapis.auth.oauth2.GoogleIdToken;
import com.google.api.client.googleapis.auth.oauth2.GoogleIdToken.Payload;
import java.util.Collections;
public class IdTokenVerifierAndParserAndroid {
private static Payload payload =null;
public static GoogleIdToken.Payload getPayload (String tokenString,String
google_client_id) throws Exception {
final NetHttpTransport transport = GoogleNetHttpTransport.newTrustedTransport();
final JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance();
GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(transport, jsonFactory)
// Specify the CLIENT_ID of the app that accesses the backend:
.setAudience(Collections.singletonList(google_client_id))
.build();
GoogleIdToken idToken = verifier.verify(tokenString);
...
【问题讨论】:
标签: java android servlets google-oauth