Google 登录 GoogleIdToken 后端验证突然失败
Posted
技术标签:
【中文标题】Google 登录 GoogleIdToken 后端验证突然失败【英文标题】:Google Sign In GoogleIdToken back-end verification suddenly fails 【发布时间】:2016-10-04 18:50:29 【问题描述】:我在使用 Google 登录时总是遇到这个问题。我有一个用户连接的 android 应用程序用于向 Google 进行身份验证,然后将 idToken 发送到我的服务器。服务器使用 Google 提供的库 (GoogleIdTokenVerifier) 来验证令牌。
GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(transport, jsonFactory)
.setAudience(audience)
.setIssuer("https://accounts.google.com")
.build();
GoogleIdToken idToken = null;
try
idToken = verifier.verify(idTokenString);
catch (Exception e)
e.printStackTrace();
if (idToken != null)
GoogleIdToken.Payload payload = idToken.getPayload();
String userId = payload.getSubject();
System.out.println("User ID: " + userId);
String email = payload.getEmail();
System.out.println("Emaail:" + email);
return userId;
else
System.out.println("Invalid ID token.");
return null;
这工作了一段时间,然后突然验证开始总是失败。什么也没有变! 有什么想法吗?
【问题讨论】:
您解决了这个问题吗?我有类似的问题,它以前工作过,代码没有改变,但现在令牌验证在第一次尝试时失败。稍后,大约 10 秒后,相同的令牌变为有效并返回用户信息。 我刚刚切换到使用 REST api .. 它现在适用于我,使用相同的代码。更多信息:***.com/questions/38461832/… 【参考方案1】:检查您的服务器时间,我在迁移到新服务器时遇到了同样的问题。我通过使用 NTP 设置时区解决了这个问题。
【讨论】:
【参考方案2】:如果您在本地主机上运行,请检查您的计算机时间是否正确,与服务器位于同一时区。
我花了整整一天的时间处理这个错误,从发送给客户端的 idToken 中获取 null。
【讨论】:
以上是关于Google 登录 GoogleIdToken 后端验证突然失败的主要内容,如果未能解决你的问题,请参考以下文章
Firebase IOS Google 登录:成功登录后更改视图
为啥在 google play store 上发布后 google 和 facebook 登录不起作用
使用 Google 登录通过 Firebase 签名后如何访问课堂 API