我成功从GoogleAuthUtil.getToken()
获取了ID令牌,但遗漏了Google特定的name
声明。
最糟糕的是,在我的黑客历史中的某个时刻,出现了name
声明,但我无法重现它......
这可能是范围问题吗?
我在GitHub上创建了一个小型Android Studio项目来重现此问题:https://github.com/axd1967/idtokentest
感谢
编辑1: 结果给出了
{ "iss": "accounts.google.com", "sub": "xxxx9706996760",
"azp":
"xxxx1l3r7a.apps.googleusercontent.com",
"email": "xxx@gmail.com", "email_verified": true, "aud":
"xxxx7sc3slj.apps.googleusercontent.com",
"iat": 1435043752, "exp": 1435047352 }
范围(见here)
Scopes.PLUS_LOGIN, Scopes.PLUS_ME
我还补充道
https://www.googleapis.com/auth/plus.profile.emails.read
{
"iss": "accounts.google.com",
"sub": "xxx39959706996760",
"azp": "xxxr7a.apps.googleusercontent.com",
"email": "xxxv@gmail.com",
"email_verified": true,
"aud": "340233876420-xxx.apps.googleusercontent.com",
"iat": 1434027665,
"exp": 1434031265,
"name": "ZoneIT Dev",
"picture": "https://lh6.googleusercontent.com/-q849EbIzef0/AAAAAAAAAAI/AAAAAAAAACE/qUzFOcDLA4w/s96-c/photo.jpg",
"given_name": "ZoneIT",
"family_name": "Dev"
}
编辑2:是否可能无法以这种方式获取这些字段(使用ID令牌)?
编辑3 根据here,请注意只有email
可用...