Срок действия маркеров обновления Google истек? - PullRequest
97 голосов
/ 21 января 2012

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

Ответы [ 7 ]

133 голосов
/ 21 января 2012

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

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

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

49 голосов
/ 10 марта 2016

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

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

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

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

14 голосов
/ 23 декабря 2013

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

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

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

Это из документации youTube (которая, как мне кажется, намного лучше, чем другие API-документы), но я думаю, что она одинакова для всех приложений Google.

4 голосов
/ 27 января 2014

см. Это:

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

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

3 голосов
/ 13 сентября 2017

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

Мы раньше настраивали доступ к API и генерировали токены обновления, когда настраивали НОВЫХ пользователей Gmail, а затем мы могли архивировать их почту (мы обязаны делать это по закону), но сейчаскак только они меняют свой пароль, токен обновления отменяется.

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

2 голосов
/ 27 июля 2015

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

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

0 голосов
/ 16 декабря 2015

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

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

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

...