lib 1009385 // google auth client

import com.google.api.client.auth.oauth2.GoogleIdToken;
import com.google.api.client.auth.oauth2.GoogleIdToken.Payload;
import com.google.api.client.auth.oauth2.GoogleIdTokenVerifier;

static bool googleVerifyUserToken(S clientID, S token) {
  GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(transport, jsonFactory)
    // Specify the CLIENT_ID of the app that accesses the backend:
    .setAudience(Collections.singletonList(clientID))
    .build();
  
  GoogleIdToken idToken = verifier.verify(token);
  if (idToken != null) {
    Payload payload = idToken.getPayload();
  
    // Print user identifier
    String userId = payload.getSubject();
    print("User ID: " + userId);
  
    // Get profile information from payload
    String email = payload.getEmail();
    boolean emailVerified = Boolean.valueOf(payload.getEmailVerified());
    String name = (String) payload.get("name");
    String pictureUrl = (String) payload.get("picture");
    String locale = (String) payload.get("locale");
    String familyName = (String) payload.get("family_name");
    String givenName = (String) payload.get("given_name");
  
    print("Name: " + name);
    true;
  } else {
    print("Invalid ID token.");
    false;
  }
}