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


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

7 87

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=автономном режиме включен в запрос кода авторизации.

in 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 используется для получения токена обновления во время первого запроса "offline". С этого момента, маркер обновления используется для выдачи нового маркера доступа. Идея заключается в том, что токен доступа является краткосрочным токеном, но он может быть обновлен долгосрочным токеном обновления. Это устраняет необходимость запрашивать переменную 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 referrer. Это означает, что маркеры доступа могут быть получены без необходимости нажимать на ссылку для запуска процесса. Методология Google означает, что API-процедуры должны вызываться только по необходимости использования базы. По существу, вызовы инициируются с помощью процедур на основе реферера. Это контролируется путем выдачи кратковременных маркеров доступа или маркеров доступа, которые должны быть обновлены в цепочке. Это требует от разработчиков более тщательно продумать, как должна работать система.