2012-01-21 4 views
81

Я использовал токен обновления несколько раз за короткое время для тестирования, но мне интересно, истекает ли токен обновления Google? Или я могу назвать тот же токен обновления, чтобы получить еще один токен доступа снова и снова в течение длительного периода (неделя или даже месяцы)?Срок действия токенов обновления Google?

+0

Вы используете рубин, или у вас есть образец кода для этого? – Thufir

ответ

110

Сервер Google Auth, выдающий токены обновления, никогда не истекает - это целая точка токенов обновления. Ток обновления будет истекать (или, я должен сказать, стать неавторизованным), когда пользователь отменяет доступ к вашему приложению.

См. Это doc, в нем четко указывается функция обновления токенов.

Вместо выдачи долговечного маркера (как правило, хорошо в течение года или неограниченный срока службы), сервер может выдает кратковременный доступ лексемы, так и долгоживущий токен обновления. Итак, вы можете использовать токены обновления снова и снова, пока пользователь, который разрешил доступ, не отменяет доступ к вашему приложению.

+0

Спасибо! Должен видеть документ. –

+5

Часть «хорошо для года» делает ее не совсем ясной, как вы предлагаете; но поскольку на практике это не вызывает проблем, я предполагаю, что токен обновления является вечнозеленым. – mahemoff

+37

Срок действия токена Вы должны написать свой код, чтобы ожидать, что предоставленный токен больше не будет работать. Токен может перестать работать по одной из следующих причин: Пользователь отменил доступ. Токен не использовался в течение шести месяцев. Учетная запись пользователя превысила определенное количество запросов к токенам. В настоящее время на учетную запись пользователя Google действует ограничение на 25 токенов. Если учетная запись пользователя имеет 25 действительных токенов, следующий запрос на аутентификацию завершается успешно, но при этом недействителен недействительный старейший выдающийся токен без предупреждения пользователя. (от https://developers.google.com/accounts/docs/OAuth2) – bazik

14

Я не думаю, что это совершенно верно:

Обратите внимание, что существуют ограничения на количество токенов обновления, которые будут выданы; один предел для каждой комбинации клиент/пользователь и другой для каждого пользователя. Вы должны сохранять токены обновления в долгосрочном хранилище и продолжать использовать их, пока они остаются в силе. Если ваше приложение запрашивает слишком много токенов обновления, оно может работать в этих пределах, и в этом случае старые токены обновления перестанут работать.

с этой страницы: https://developers.google.com/youtube/v3/guides/authentication#installed-apps

То есть из документации YOUTUBE (которые я нахожу, чтобы быть намного лучше, чем другие API Docs), но я думаю, что это то же самое во всех приложениях Google.

4

увидеть это:

Обновить токены действительны до тех пор, пока пользователь не отменит доступ. Это поле присутствует только в том случае, если access_type = offline включен в запрос кода авторизации.

в https://developers.google.com/accounts/docs/OAuth2WebServer

2

Основная концепция обновления маркера, является то, что это длительный и никогда не истекает.

Ток доступа имеет время истечения срока действия и истекает, по истечении которого мы можем перейти на токен обновления, который будет использоваться снова и снова, пока пользователь не аннулирует его учетную запись.

-1

Я провел несколько дальнейших исследований, и кажется, что токен доступа Google используется для извлечения токена обновления во время первого «автономного» запроса. Начиная с этого момента токен обновления используется для выдачи нового токена доступа. Идея заключается в том, что токен доступа является краткосрочным токеном, но он может быть обновлен с помощью токена обновления.Это устраняет необходимость для того, чтобы запросить URL «код» переменную, которая требует два конечных точек подхода и должен быть начат, используя запрос ссылающейся на основе:

http://www.jensbits.com/2012/01/09/google-api-offline-access-using-oauth-2-0-refresh-token/

Некоторые, REST API услуги, такие как Dropbox, выдавать токены доступа, которые сохраняются вечно, но Google выдает кратковременные токены доступа. PayPal использует компромисс, благодаря чему он позволяет получать токены доступа без принудительного использования реферера URI. Это означает, что токены доступа могут быть извлечены без необходимости щелчка по ссылке, чтобы инициировать процесс. Методология Google означает, что процедуры API должны вызываться только из-за необходимости использовать базу. По сути, вызовы инициируются посредством процедур, основанных на реферерах. Это контролируется выдачей недолговечных токенов доступа или доступа к токенам, которые необходимо обновить в цепочке. Для этого требуется, чтобы разработчики более тщательно думали о том, как должна протекать система.

31

Это очень запутанная нить. Первый ответ кажется правильным, но на самом деле не цитирует ничего авторитетного из Google.

Самый окончательный ответ, который я нашел, находится на игровой площадке разработчика, где вы получаете токен. Шаг 2 имеет примечание в нижней части, которая говорит:

«Примечание: OAuth площадка не хранит токенов обновления, но токенов обновления никогда не истекает, пользователь должен перейти на свою страницу Авторизованный доступ к аккаунту Google, если они хотели бы чтобы вручную их аннулировать ».

https://developers.google.com/oauthplayground/

+2

лучший ответ здесь - почему никто не имеет возвышенности, невероятно - большое спасибо - обрабатывайте токены обновления, как будто они никогда не истекают, однако при регистрации входа на новую, если пользователь отменяет токен обновления, в этом случае Google предоставит новое обновление token on signin, так что просто обновите токен обновления – danday74

3

Правила изменились на это где-то в 2017 году, так что лучший ответ, который я думаю, что это зависит от продукта. Например, в API Gmail токен обновления Oauth 2.0 истекает после смены пароля. См. Это https://support.google.com/a/answer/6328616?hl=en

Раньше мы устанавливали API-интерфейс заранее и генерировали токены обновления при настройке новых пользователей Gmail, а затем мы могли архивировать их почту (мы обязаны делать это по закону), но теперь, как только они изменить свой пароль, токен обновления отменяется.

Возможно, для youtube, карт токен обновления по-прежнему долговечен, но для gmail api рассчитывается на короткий токен.

+0

Похоже, он стал официальным 5 октября 2016 года. https://developers.googleblog.com/2016/09/increased-account-security-via-oauth-2-0-token -revocation.html – user3919648

Смежные вопросы