谷歌登录安卓无效 ID 令牌



我正在按照 Android 版 Google 登录指南 (https://developers.google.com/identity/sign-in/android/backend-auth) 上的说明进行操作,并且正在尝试验证我的 ID 令牌。当我去https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=XYZ123 我的浏览器中(其中 XYZ123 是我检索的 id 令牌 String idToken = acct.getIdToken();,我得到这个回应:

{
 "error_description": "Invalid Value"
}

我的 id 令牌以 eyJ 开头,长度为 1038 个字符。

我也在这里尝试了解决方案安卓:谷歌登录无效令牌无济于事。

任何帮助将不胜感激。

原来我的令牌刚刚过期。我抓住了一个新的令牌,它有效!

如果您要传递给函数的 idToken 来自移动应用程序的日志,则由于通用日志的限制,您可能无法在日志中打印整个 idToken。

我使用以下代码片段打印出idToken,并在API中使用它,这给了我一个成功的响应。

print('ID TOKEN');
String token = googleAuth.idToken;
while (token.length > 0) {
    int initLength = (token.length >= 500 ? 500 : token.length);
    print(token.substring(0, initLength));
    int endLength = token.length;
    token = token.substring(initLength, endLength);
}

注意:尽管此代码段特定于颤振,但您可以在任何框架中重用该逻辑。

有同样的问题。对我来说,清除应用程序数据完全解决了这个问题。似乎一个旧的过期令牌卡住了。

来自我自己在另一个问题的回答:

就我而言,我正在 Unity 中对此进行测试,并复制了我在 logcat 中打印的idToken值。事实证明,adb logcat 或 Unity 的 Debug.Log() 方法中的一行有一些字符或大小限制(1024 字节?因此,打印的令牌值被截断。然后我所做的测试是,我在运行时将令牌值复制到剪贴板,然后使用 tokeninfo 端点https://oauth2.googleapis.com/tokeninfo?id_token=再次检查并接受它。

相关内容

  • 没有找到相关文章

最新更新