Срок действия маркеров обновления Google истек?

74

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

  • 0
    вы используете ruby, или у вас есть пример кода для этого?
Теги:
access-token
google-api
token

7 ответов

98
Лучший ответ

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

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

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

  • 0
    Спасибо! Должен увидеть док.
  • 6
    Часть «хорошо для года» делает это не так ясно, как вы предлагаете; но поскольку на практике это не вызывает проблем, я предполагаю, что маркер обновления является вечнозеленым.
Показать ещё 7 комментариев
27

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

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

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

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

  • 2
    лучший ответ здесь - почему никто не проголосовал против - невероятно - большое спасибо - относитесь к токенам обновления так, как будто они никогда не истекают - однако при входе в систему проверяйте новый, если пользователь отменяет токен обновления, в этом сценарии Google предоставит новый токен обновления при входе в систему, просто обновите токен обновления
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

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

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

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

2

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

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

-2

Я провел несколько дальнейших исследований, и кажется, что токен доступа 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 должны вызываться только из-за необходимости использовать базу. По сути, вызовы инициируются посредством процедур, основанных на реферерах. Это контролируется выдачей недолговечных токенов доступа или доступа к токенам, которые необходимо обновить в цепочке. Это требует от разработчиков более тщательно думать о том, как должна протекать система.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню