Не могу понять, почему срок действия токена обновления Google OAuth истек

# #google-cloud-platform #google-oauth #google-workspace #google-identity

Вопрос:

За последние 3 недели у нас было большое количество сбоев при обновлении маркера доступа с помощью Google Oauth API. Мне не удалось понять, почему это произошло, как это никогда не случалось со мной до сегодняшнего дня.

Когда я попытался обновить свой токен, я получил следующий HTTP-ответ от Google OAuth API:

 {
  "error": "invalid_grant",
  "error_description": "Token has been expired or revoked."
}
 

В документации есть раздел, объясняющий срок действия токена обновления: https://developers.google.com/identity/protocols/oauth2#expiration

  • Пользователь отозвал доступ к вашему приложению.
  • Токен обновления не использовался в течение шести месяцев.
  • Пользователь изменил пароли, и маркер обновления содержит области действия Gmail.
  • Учетная запись пользователя превысила максимальное количество предоставленных (активных) токенов обновления.
  • Пользователь принадлежит к организации Google Cloud Platform, в которой действуют политики управления сеансами.

Я отправился в https://myaccount.google.com/permissions страница. Поскольку мое приложение все еще было в списке, это подтверждает, что я не отменял доступ к своему приложению вручную.

Доступ был предоставлен 4 июня 2021 года, то есть 3 дня назад (на момент написания статьи), таким образом, это не потому, что токен обновления не использовался в течение шести месяцев.

Я не менял свой пароль, и приложение не использует области действия Gmail, только следующие:

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

Единственный оставшийся элемент, который я должен проверить, — это политики управления сеансами, действующие в моей организации GCP.

Но поскольку проблема довольно новая, мне было интересно, развернул ли Google что-то новое в API Oauth (идентификация), что может привести к истечению срока действия токенов обновления.

Кто-нибудь сталкивался с этой проблемой в последнее время?

Обновление: действующие политики управления сеансами не требуют повторной аутентификации.

Ответ №1:

Это то, что появилось за последние четыре месяца, да, я думаю, что это что-то новое, и от Google пока не было никаких официальных сообщений об этом.

Срок действия токенов обновления для приложений, которые все еще находятся в стадии тестирования и не прошли проверку Google, истечет в течение двух недель.

введите описание изображения здесь

Комментарии:

1. Когда вы гадаете, вам следует оставить комментарий.

2. На самом деле, это может быть так для приложения для разработки, где со мной произошла проблема. Однако та же проблема возникает в нашем производственном приложении, которое проверено Google. Спасибо @DalmTo

3. @Джонханли, кто сказал, что я угадываю? Это то, что я лично проверил, и есть по крайней мере еще пять вопросов, связанных с этим, если вы хотите так осмотреться. У меня также есть три электронных письма для гуглеров, ожидающих какого-то официального сообщения. Google постоянно вносит изменения, не обновляя документацию.

4. @ben если приложение было проверено, то я бы предположил, что с используемым вами маркером обновления что-то не так. Я бы посмотрел, как вы храните токен обновления, убедитесь, что он хранится правильно и полностью, и вы не отсекаете конец или что-то в этом роде. А также убедитесь, что вы всегда храните самые обиженные, поскольку, по сути, новый может быть возвращен с запросом на токен доступа для обновления.

5. Максимальный размер токенов доступа был увеличен до 2048 байт.