2015-09-16 3 views
0

Я использую веб-службы, защищенные OAuth 2.0. После того, как я получить оригинальный access_token и refresh_token, я должен реализовать следующую логику:OAuth 2.0 с токеном обновления - могу ли я получить новый токен доступа для каждого вызова?

  • Определить, если access_token больше не действует (ответ 401)
  • Запросить новый access_token с помощью refresh_token
  • Повторите первоначальный запрос с использованием новый access_token

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

  • Запросили access_token с помощью refresh_token
  • Действуйте с запросом, используя новый access_token

ответ

1

Это технически возможно, но побеждает OAuth 2.0 дизайн расщепления между access_token и refresh_token. Я предпочел бы, чтобы ваш сервер авторизации выдал токены доступа, которые действительны в течение определенного периода времени, но один, который охватывает «интервал безопасности», то есть интервал, в течение которого вы в порядке, чтобы клиент работал независимо от проверок, которые могут выполняться на Сервер авторизации.

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

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

Смежные вопросы