Chrome Identity API中的OAuth2用户信息

时间:2015-07-08 08:48:50

标签: google-chrome-extension google-chrome-app google-oauth2

我正在使用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

2 个答案:

答案 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中要求访问令牌时,我获得了userIdSub参数),但是如果我在interactive = false模式下执行,则响应没有sub参数。

chrome.identity.getAuthToken({ 'interactive': true }, function(token) {
  // code
}