1

Я работаю с API Google Chrome Identity, я получаю доступ к токену доступа, и я отправляю его на свой серверный сервер.OAuth2 Информация о пользователе в API идентификации Chrome

Для проверки маркера доступа я использую этот URL:

https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=xxxxxx 

Мне нужно, чтобы получить userId аутентифицированного пользователя, как я могу это сделать?

Я использую эти области в файле manifest.json.

https://www.googleapis.com/auth/plus.profile 

ответ

0

Мое решение:

Когда я попросить маркер доступа в interactive mode я получил (параметр Sub) userId, но если я это сделать в режиме interactive = false ответа нет sub параметра.

chrome.identity.getAuthToken({ 'interactive': true }, function(token) { 
    // code 
} 
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", 
... 
} 
+0

Да, когда я прошу конечную точку USERINFO = 'HTTPS: //www.googleapis.com/oauth2/v3/tokeninfo access_token = xxxxxx', ответ не содержит' userId' но когда я спрашиваю токен доступа в ** интерактивном режиме ** я получил его !, спасибо @abraham – user2602584