我正在使用Google Chrome Identity API,我成功获得了访问令牌,并将其发送到我的后端服务器。
要验证访问令牌,我正在使用此URL:
https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=xxxxxx
我需要获得经过身份验证的用户的userId
,我该怎么办?
我在manifest.json文件中使用这个范围。
https://www.googleapis.com/auth/plus.profile
答案 0 :(得分:3)
对https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=xxxxxx
的回复包含userId
作为sub
值。
{
"azp": "407408718192.apps.googleusercontent.com",
"aud": "407408718192.apps.googleusercontent.com",
"sub": "114233674199568482864",
"scope": "https://www.googleapis.com/auth/userinfo.profile",
"exp": "1436369027",
"expires_in": "3589",
"access_type": "offline"
}
或者,您可以向people.get发出请求并使用id
值。
{
"kind": "plus#person",
"etag": "\"RqKWnRU4WW46-6W3rWhLR9iFZQM/gLREuMULAxw3wiBcudkUCAWTcjE\"",
"objectType": "person",
"id": "114233674199568482864",
"displayName": "Abraham Williams",
...
}
答案 1 :(得分:0)
我的解决方案:
当我在interactive mode
中要求访问令牌时,我获得了userId
(Sub
参数),但是如果我在interactive = false
模式下执行,则响应没有sub
参数。
chrome.identity.getAuthToken({ 'interactive': true }, function(token) {
// code
}