На какой стороне должен быть обновлен access_token - PullRequest
0 голосов
/ 12 сентября 2018

Поскольку access_token имеет короткий срок жизни, для удобства пользователей используется refresh_token.

Давайте представим, что у нас есть клиентское мобильное приложение для iOS / Android. После первого входа в систему, когда пользователь предоставляет свое имя пользователя и учетные данные, последующий запрос отправляется на серверную часть, которая отвечает токеном доступа и обновления.

Но что делать, если до истечения срока действия токена доступа осталась 1 минута или он уже истек. Должен ли процесс проверки выполняться на стороне сервера?

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

Или этот вид итераций должен выполнять клиентское приложение? При каждом запросе проверять дату expires_in и, если да, запрашивать новый access_token с использованием типа предоставления refresh_token и только после этого делать удаленный вызов?

1 Ответ

0 голосов
/ 12 сентября 2018

Согласно OAuth, когда истекает срок действия вашего исходного токена, в зависимости от ситуации вы должны обновить его, отправив значение refresh_token на соответствующую конечную точку сервера. Сервер выполняет операцию обновления, генерируя новый токен, поэтому вы получаете новый token с новой датой expires_in. Вы получаете множество вариантов отправки обновленного токена клиентом, например:

  • Наличие таймера и отправка действия обновления до истечения срока действия токена.
  • Если у вас ошибка статуса 401.

Я бы посоветовал вам кодировать перехватчик HTTP, и когда ответ получит код 401, вам следует отправить действие обновления.

...