@R4ndolphC4rter

Как организовать аутентификацию с помощью стороннего сервиса, используя JWT?

Пишу небольшое приложение на Django. Столкнулся с проблемой. Подробнее ниже.

Предыстория
В моём приложении была реализована самая обычная схема аутентификации и авторизации пользователя: человек вводит логин и пароль, если данные верны, то он попадает в систему. В системе реализовано деление на роли - помимо прочих есть администратор, который имеет доступ к админ-панели. Именно он и создаёт аккаунты (регистрация отсутствует). Весь этот функционал создан с помощью стандартных моделей django (user, permissions...).
Когда я продемонстрировал базовый функционал приложения на одном из собраний, мне сказали подключить сторонний сервис авторизации (обязательно с поддержкой JWT). Когда увидели, как я реализовал фронт (html, css, js с использованием шаблонизатора), сказали, что в текущем виде подключить сторонний сервис не получится - переписывай всё на react.
Сейчас я переписываю приложение с нуля, используя Django, DRF, django rest framework simple jwt и React с Bootstrap'ом. Испытываю некие сложности, т.к. работаю впервые с чем-то, кроме чистого Django. Отсюда вопрос.

Вопрос
Как организовать аутентификацию с помощью стороннего сервиса, используя JWT?
Как мне проверить, что токены валидные? И что с ними делать дальше? Как я понимаю, в эти токены можно зашить разную информацию, например, уникальный идентификатор пользователя. Но как мне выдавать права пользователю с этим идентификатором? Как грамотно переделать стандартную схему аутентификации пользователя? При чём тут React?

Дополнительная информация
Из того, что мне сказали: схема "общения" будет выглядеть следующим образом (рисунок ниже).
641af73be4099735184500.png
Т.е. введённые пользователем данные отправляются на сервис авторизации. Если данные верны, то сервис возвращает JWT токены.

P. S условные заказчики Django не знают.
  • Вопрос задан
  • 111 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы