Информация о токене OAuth 2.0.
Истекает В определении
Стандарт OAuth 2.0, RFC 6749, определяет expires_in
поле как число секунд до истечения срока действия:
expires_in: Рекомендованный. Время жизни в секундах от токена доступа. Например, значение «3600» означает, что токен доступа истечет через один час с момента генерации ответа. Если этот параметр опущен, сервер авторизации ДОЛЖЕН предоставлять время истечения через другие средства или документировать значение по умолчанию.
маркеров Обновить Обработка: Метод 1
При получении действительное значение access_token
, expires_in
, refresh_token
и т.д., клиенты могут обрабатывать это путем сохранения время истечения срока действия и проверки его на каждом запросе. Это можно сделать, выполнив следующие действия:
- обращенного
expires_in
к истекает время (эпохи, ISO дату и время и т.д.)
- сберегать истекает время
- по запросу каждого ресурса, проверить текущее время против после истечения времени и сделать запрос маркеров обновления до запроса ресурса, если
access_token
истек
в дополнении к получению нового access_token
, вы можете получить новый refresh_token
с временем истечения е далее в будущем. Если вы получите это, вы должны сохранить новый refresh_token
, чтобы продлить срок службы.
Токен Refresh Handling: Метод 2
Другого метод обработки токенов обновления, чтобы обновить вручную после получения недопустимых маркеров ошибки. Это можно сделать с помощью предыдущего подхода или самого себя.
Если вы попытаетесь использовать истек срок действия access_token
и получите недопустимую токенную ошибку, вам необходимо выполнить обновление токена (если токен обновления остается в силе). Поскольку разные службы могут использовать разные коды ошибок для истекших токенов, вы можете либо отслеживать код для каждой службы, либо простой способ обновлять токены между службами - просто попробовать одно обновление при столкновении с ошибкой 4xx.
Недопустимый маркер доступа Ошибки
Ниже приведены некоторые коды ошибок из популярных сервисов:
- Facebook: Error 467 Invalid access token - маркер доступа истек, был отменен, или иным образом недействительны - Ручка с истекшим сроком действия токенов.
- LinkedIn: Error 401 Unauthorized.
- PayPal: Error 401 Unauthorized.
Обновить Токен Истечение
Если refresh_token
также истек, вам нужно будет снова пройти процесс авторизации.
Привет, большое спасибо за ваш ответ! Проверяя время истечения срока действия, что, если пользователь меняет время устройства? Не приведет ли это к слишком частому обновлению токена доступа? А что касается проверки неверной ошибки токена, есть ли у вас какие-либо идеи относительно кода ответа и формата ошибки, возвращаемого сервером oAuth? И будет ли это ответ об ошибке одинаковым для всех серверов oAuth? – XiOS
Каковы некоторые случаи использования часто возникающих изменений времени устройства? Изменения в часовых поясах следует обрабатывать автоматически. Так как неверный код ошибки токена не определен в стандарте, разные службы выбрали различные коды ошибок, перечисленные выше. Простой подход к обновлению может состоять в том, чтобы попробовать одно обновление при ошибке 4xx, как упоминалось выше. – Grokify