首页 > 解决方案 > Google 验证 ID 令牌的完整性得到错误:IllegalArgumentException

问题描述

我正在尝试使用 Spring Boot 验证 google 令牌 ID。我一步一步按照这个链接

在里面

GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(transport, jsonFactory) // Specify the CLIENT_ID of the app that accesses the backend: .setAudience(Collections.singletonList(CLIENT_ID)) // Or, if multiple clients access the backend: //.setAudience(Arrays.asList(CLIENT_ID_1, CLIENT_ID_2, CLIENT_ID_3)) .build();

我在 valur 中使用我的谷歌应用程序中的客户 ID , 但是当我添加CLIENT_ID

GoogleIdToken idToken = verifier.verify("someText");

我收到以下错误

Caused by: java.lang.IllegalArgumentException: null
at com.google.api.client.repackaged.com.google.common.base.Preconditions.checkArgument(Preconditions.java:108) ~[google-http-client-1.24.1.jar:1.24.1]
at com.google.api.client.util.Preconditions.checkArgument(Preconditions.java:37) ~[google-http-client-1.24.1.jar:1.24.1]
at com.google.api.client.json.webtoken.JsonWebSignature$Parser.parse(JsonWebSignature.java:602) ~[google-http-client-1.24.1.jar:1.24.1]
at com.google.api.client.googleapis.auth.oauth2.GoogleIdToken.parse(GoogleIdToken.java:57) ~[google-api-client-1.24.1.jar:1.24.1]
at com.google.api.client.googleapis.auth.oauth2.GoogleIdTokenVerifier.verify(GoogleIdTokenVerifier.java:191) ~[google-api-client-1.24.1.jar:1.24.1]
at org.sid.InwiBoApplication.run(InwiBoApplication.java:59) [classes/:na]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:818) [spring-boot-2.0.5.RELEASE.jar:2.0.5.RELEASE]
... 10 common frames omitted

标签: oauthtokenillegalargumentexception

解决方案


我不必"someText"使用 GoogleIdToken idToken = verifier.verify("someText");

我必须使用格式类似于IdToken格式的字符串


推荐阅读