Истекает ли срок действия токенов Google refresh?

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

7 ответов


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

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

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


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

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

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

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


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

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

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

Это из документов youTube (которые я считаю намного лучше, чем другие документы api), но я думаю, что это то же самое во всех приложениях google.


Это:

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

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


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

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

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


основная концепция токена обновления заключается в том , что он долговечен и никогда не истекает.

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


Я провел некоторые дальнейшие исследования, и кажется, что маркер доступа Google используется для получения маркера обновления во время первого запроса "в автономном режиме". С этого момента, маркер обновления используется для выдачи нового маркера доступа. Идея заключается в том, что токен доступа-это краткосрочный токен, но он может быть обновлен долгосрочным токеном обновления. Это устраняет необходимость запрашивать переменную URL 'code', которая требует подхода с двумя конечными точками и должна быть инициирована с помощью реферера запрос:

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