Лучший способ обработки OAuth + JWT, излучаемого серверной частью?Javascript

Форум по Javascript
Ответить
Anonymous
 Лучший способ обработки OAuth + JWT, излучаемого серверной частью?

Сообщение Anonymous »

Я создаю приложение, которое объединяет сторонний единый вход (IVAO) для аутентификации пользователей. Мой стек — это интерфейс React и серверная часть NestJS. Это поток пользователя:
  • Пользователь входит в систему с помощью единого входа IVAO.
  • Сведения о пользователе хранятся в моей базе данных.
  • Бэкенд генерирует JWT для аутентификации на защищенных конечных точках.
Однако я не На 100% уверен, как подойти к потоку аутентификации с точки зрения кода. У меня есть несколько предложений:
Предложение 1
  • Frontend перенаправляет на IVAO SSO
  • IVAO SSO перенаправляет на конечную точку /callback в серверной части, которая хранит пользовательские данные + создает JWT
  • NestJS перенаправляет во внешний интерфейс с JWT, хранящимся в заголовке
  • Внешний интерфейс сохраняет JWT
Предложение 2
  • Внешний интерфейс перенаправляет в IVAO SSO
  • Перенаправления IVAO SSO к маршруту /callback во внешнем интерфейсе, который отправляет запрос POST к конечной точке API, включая JWT, предоставленный из IVAO.
  • Внутренняя часть хранит пользовательские данные + создает и возвращает JWT во внешний интерфейс.
  • Внешняя часть хранит JWT.
Предложение 3
  • Фронтенд вызывает защищенный маршрут в бэкэнде NestJS, что запускает единый вход IVAO.
  • IVAO SSO перенаправляет на конечную точку /callback в бэкэнде, где хранятся пользовательские данные + создает JWT.
  • NestJS перенаправляет во фронтенд с сохраненным JWT. в заголовке
  • Фронтенд хранит JWT
Я создаю новый JWT, потому что хочу добавить в него больше данных, которые не поступают из IVAO.
Какое из трех предложений лучше? Изменили бы вы что-нибудь из этого? Есть ли еще?

Подробнее здесь: https://stackoverflow.com/questions/798 ... by-backend
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»