Методы обновления OAuth access_token - PullRequest
0 голосов
/ 05 июля 2018

Я внедряю OAuth в моем приложении React / Redux (или другом приложении управления состоянием на основе Flux), и я изо всех сил пытаюсь найти хорошую информацию о "плюсах против" различных методов расширения access_token.


1) Перехватить 401 ответ

Один из вариантов - перехватывать запросы API (например, используя пакет «fetch-intercept») и обнаруживать любые ответы 401 HTTP-кода.

В случае, если мы 401 создаем логику для получения нового access_token, а затем воспроизводим предыдущий запрос.

  • Воспроизведение может быть обработано путем отправки действия INVALID_TOKEN в обработчик 401, перехватывая их через промежуточное программное обеспечение, которое затем воспроизведет действие до того, как произойдет действие INVALID_TOKEN.

Плюсы

  • Видна полная информация о действиях, связанных с ошибками аутентификации (поэтому мы можем воспроизвести ошибки, связанные с аутентификацией, используя отладку во времени)

2) Обнаружение устаревшего access_token во время вызова API

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

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

Плюсы

  • Не нужно подключаться к серверу, чтобы получить ответ 401, который мы могли бы вместо этого вытеснить

Против

  • Более сложная логика для постановки запросов в очередь, пока мы обновляем токен, прежде чем, наконец, воспроизвести их после правильного обновления

3) Метод опроса

При входе в систему посмотрите, сколько времени пройдет до истечения срока действия токена, и установите тайм-аут для обновления access_token непосредственно перед этим

Плюсы

  • Самый простой вариант (особенно при модификации приложения с потерей существующей логики запросов)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...