Ich füge Google Register/Sign in meine Web App und ich habe ein Problem festgestellt.Java Web GoogleSignin - GoogleIdTokenVerifier Verify-Token-String gibt null zurück
Dies ist mein Code:
private static final HttpTransport transport = new NetHttpTransport();
private static final JsonFactory jsonFactory = new JacksonFactory();
private static final String MY_APP_GOOGLE_CLIENT_ID = "wouldntyouliketoknow";
public UsernamePasswordAuthenticationToken verify(final String idTokenString){
GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(transport, jsonFactory)
.setAudience(Collections.singletonList(MY_APP_GOOGLE_CLIENT_ID))
.build();
try {
GoogleIdToken idToken = verifier.verify(idTokenString);// <-- verifier.verify returns null !!!
if (idToken != null) {
Payload payload = idToken.getPayload();
String email = payload.getEmail();
if(Boolean.valueOf(payload.getEmailVerified())){
UserJPA jpa = userRepository.findByEmail(email);
if(jpa==null){
throw new UsernameNotFoundException("Cannot find user with email = "+email);
}
if(!jpa.isRegisterredWithGoogle()){
throw new UsernameNotFoundException("This user did not use the 'Register with google' option.");
}
bokiAuthenticationProvider.checkUserActiveAndUnlocked(jpa);
return new UsernamePasswordAuthenticationToken(jpa.getUsername(), jpa.getPasswordHesh(),
bokiAuthenticationProvider.getAuthorities(jpa.getUserHasRoleSecurityList()));
}
}else{
System.out.println("The *idToken* object is null !!!");
}
} catch (GeneralSecurityException | IOException e) {
e.printStackTrace();
}
throw new MyCustomException("Google token is invalid or has expired");
}
Zu meiner CLIENT_ID erstelle ich Anweisungen befolgt hier:
https://developers.google.com/identity/sign-in/web/devconsole-project
Das Problem ist, dass verifier.verify Rückkehr hält null.
Ich habe überprüft:
mein Benutzer mit Google registriert haben und die Datenbankfelder richtig
gefüllti verschiedene String-Token von Google jedes Mal bekomme ich versuche google_sign_in
mein CLIENT_ID ist in der Google-Konsole gültig und aktiv.
Um die Verwirrung zu ergänzen, funktionierte dieses Ganze vor einem Monat gut. Ich bin krankgeschrieben und als ich zurück kam, begrüßte mich mein Chef mit diesem Problem.
Wer hat eine Idee, was passiert sein könnte?