Как использовать Google Oauth2 access_token? - PullRequest
1 голос
/ 19 декабря 2011

Я создаю настройки единого входа для веб-приложения.Я могу войти в систему известных пользователей и создать новых неизвестных пользователей через https://www.googleapis.com/oauth2/v1/userinfo.

Я получаю ответ, подобный этому:

{
    "access_token":"1/fFAGcxxxxxxxxxxxxxxxxxxx",
    "expires_in":3920,
    "token_type":"Bearer",
    "refresh_token":"1/xEoDL4iW3cxlI7yDbSRFYxxxxxxxxxxxxxxxxxxx"
}

Итак, я получаю пользователя:

url = 'https://www.googleapis.com/oauth2/v1/userinfo?access_token=%s' % a['access_token']
req = urllib2.Request( url )
opener = urllib2.build_opener( urllib2.HTTPSHandler( debuglevel=0 ) )
req = opener.open( req )
reply = req.read()
req.close()
a = json.loads( reply )

Это дает мне информацию о пользователе и разрешение на доступ к его GMail через мою начальную область.Но разрешает ли этот метод получения пользователя доступ к GMail пользователя через imap?

http://code.google.com/apis/gmail/oauth/protocol.html

Разрешает ли полученный мной access_token доступ к этому?Я не вижу, где можно использовать «access_token», когда он у меня есть.

1 Ответ

3 голосов
/ 26 марта 2012

(Не уверен, если вам все еще нужен ответ на этот вопрос, но на всякий случай ...)

Хотя большинство API Google теперь могут проходить аутентификацию с использованием OAuth2, клиент Google IMAP поддерживает только OAuth 1. Это требуетне только токен доступа, но и токен «секрет»;вы не получите этого с ответом OAuth2 (поскольку он вам не нужен), что означает, что он в значительной степени бесполезен для вас.

Что вы можете сделать, это использовать OAuth 1;это все еще поддерживается Google, хотя он не имеет всех наворотов OAuth2.Детали его использования находятся по ссылке, которую вы упомянули (которая теперь перенаправляет на https://developers.google.com/google-apps/gmail/oauth_protocol).. Я бы настоятельно рекомендовал использовать для этого известную библиотеку, такую ​​как python-oauth2 * 1012.* (который, несмотря на название, использует OAuth 1).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...