С нескольких дней автоматически истекает токен обновления

#oauth #google-api #access-token #google-authentication #refresh-token

#oauth #google-api #токен доступа #google-аутентификация #обновить токен

Вопрос:

  1. У нас есть веб-клиент Google OAuth2 в консоли API Google
  2. С помощью веб-клиента Oauth мы получаем токен обновления для каждого пользователя (с помощью веб-аутентификации и экрана концерта)
  3. Мы сохраняем полученный токен обновления в базе данных и, системный пользователь, этот пользовательский токен обновления для автоматического создания события Календаря Google от имени зарегистрированного пользователя (у нас около 1000 пользователей)

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

{ «ошибка»: «invalid_grant», «error_description»: «Срок действия токена истек или он отозван». }

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

Существует ли какое-либо ограничение на токен обновления? Есть ли какие-либо ограничения на получение токена обновления с использованием того же клиента API? (У нас есть отдельный пользователь 1000 Gsuit или Gmail, который зарегистрировался для получения токена обновления индивидуально, используя свою личную учетную запись Gmail или Gsuit) Есть ли какие-либо изменения в API, чтобы получить токен обновления long live?

С уважением, DP

Ответ №1:

Ваши вопросы

Существует ли какое-либо ограничение на токен обновления?

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

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

Есть ли какие-либо ограничения на получение токена обновления с использованием того же клиента API? (У нас есть отдельный пользователь 1000 Gsuit или Gmail, который зарегистрировался для получения токена обновления индивидуально, используя свою личную учетную запись Gmail или Gsuit)

Ваш клиент может авторизовать столько пользователей, сколько вам нравится. Количество пользователей, которых может иметь ваша система, не ограничено.

Есть ли какие-либо изменения в API, чтобы получить токен обновления long live?

Не то, о чем я знаю

Сообщение об ошибке

Здесь может произойти несколько вещей.

  1. Во-первых, пользователь имеет право отменить ваш доступ через свою учетную запись Google. Мне кажется, что это может быть тем, что происходит.

  2. Вторая проблема заключается в том, что наступает октябрьское и летнее время Google. Несколько лет назад возникла проблема с токенами, истекающими в летнее время.

  3. Третья проблема заключается в том, что если ваш токен обновления не использовался в течение последних шести месяцев, срок его действия в Google истечет.

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

{ «ошибка»: «invalid_grant», «error_description»: «Срок действия токена истек или он отозван». }