【发布时间】:2015-09-25 11:48:08
【问题描述】:
我正在尝试通过Google Sign-in 对 Android 上的用户进行身份验证以获取帐户名称,通过 GoogleAuthUtil.getToken(getApplicationContext(), app, scopes) 获取令牌,然后将令牌发送回我的 NodeJS -端服务器进行验证
我found this 很棒的 stackoverflow 问题,关于如何对其进行解码、缓存密钥 ID (KID),因此它不会每次都进行往返,等等。(还没有实现这部分,但有点玩弄了它)我唯一的问题是:以下 googleapis 证书有什么区别:
- www.googleapis.com/oauth2/v1/certs
- www.googleapis.com/oauth2/v2/certs
- www.googleapis.com/oauth2/v3/certs
每个版本的 KID 都是相同的,但内容却截然不同。为什么? v2 和 v3 似乎几乎相同,只是 v2 在属性 'n' 的值末尾附加了一个“==”
最重要的是,我使用哪个版本?
我认为这些证书称为 JSON Web Keys (JWK)。我也读过“x5c”这个词那是什么?
PS:我从我的 android 应用程序获取的 nodejs 上的令牌是:
{
"iss": "accounts.google.com",
"sub": "SOME_LONG_NUMBER_THAT_I_DONT_KNOW_IF_SHOULD_SHOW",
"azp": "SERVER_CLIENT_ID",
"email": "ANDROID_USER_EMAIL",
"email_verified": "true",
"aud": "ANDROID_CLIENT_ID",
"iat": "SOME_NUMBER",
"exp": "SOME_NUMBER",
"alg": "RS256",
"kid": "e53139984bd36d2c230552441608cc0b5179487a"
}
【问题讨论】:
标签: android node.js google-oauth google-signin