Google OpenID и OAuth — Как получить токены доступа

#python #oauth #access-token #google-openid

#python #oauth #access-token #google-OpenID

Вопрос:

У меня есть веб-сайт, с которого я хочу, чтобы пользователи связывали свою учетную запись GMail, позже я хочу получить доступ к учетной записи GMail пользователей через OAuth. Для этого я использую OpenID OAuth от Google (гибридный протокол).

Когда я следую вышеупомянутой документации, я получаю следующее —

 openid.assoc_handle AOQobUfg8E9PvTYX1huZPleVGoSvky57TxLHMzI-Lxd87cDNwLyrutSm
openid.claimed_id   https://www.google.com/accounts/o8/id?id=AItOawlus8fqLMQGgfCCM6pDZGpuNjwQqqYMs4o
openid.ext1.mode    fetch_response
openid.ext1.type.email  http://axschema.org/contact/email
openid.ext1.value.email forward@gmail.com
**openid.ext2.request_token   4/C-VqYG9lRtJBKM9G15I-tFk58rOS**
openid.ext2.scope   https://mail.google.com/
openid.identity https://www.google.com/accounts/o8/id?id=AItOawlus8fqLMQGgfCCM6pDZGpuNjwQqqYMs4o
openid.mode id_res
openid.ns   http://specs.openid.net/auth/2.0
openid.ns.ext1  http://openid.net/srv/ax/1.0
openid.ns.ext2  http://specs.openid.net/extensions/oauth/1.0
openid.op_endpoint  https://www.google.com/accounts/o8/ud
openid.response_nonce   2011-05-07T18:38:37ZOEVDbKdW6d2g9A
openid.return_to    https://mysite.com/gmail_redir/
openid.sig  niD5l9V7cG LOE2zYjJ6rS0Cdwc=
openid.signed   op_endpoint,claimed_id,identity,return_to,response_nonce,assoc_handle,ns.ext1,ns.ext2,ext1.mode,ext1.type.email,ext1.value.email,ext2.scope,ext2.request_token
  

Я получаю OpenID.ext2.request_token, который должен позволить мне сканировать учетную запись GMail пользователей через OAuth. Как это работает? Разве мне не нужны токены доступа (т.е. oauth_access_secret и oauth_access_token)??

Нужно ли мне делать еще какие-либо запросы? Кто-нибудь знает, как действовать после этого??

Ответ №1:

Как только у вас есть токен, вы должны

  1. авторизуйте его, а затем
  2. обменяйте его на токен доступа

Взгляните на http://code.google.com/apis/accounts/docs/OAuth.html#WorkingOauth

или https://developers.google.com/accounts/docs/OAuth2 (для OAuth v2)