React / Redux jwt авторизация и другие фронт задачи
Работаем по issue через Gitlab.
Задача:
Есть верстка новая, есть бэкенд ПО которое работает с фронтом через API, необходимо выполнить авторизацию
ТЗ:
Авторизация пользователей Любые запросы в системе требуют авторизаций пользователей.
Требуется реализовать формы авторизаций имеющие следующие поля:
- Логин
- Пароль
- Запомнить? (чекбокс)
Дальше должна быть отправлена запрос на /api-token-obtain/ с такимтелом:
{ "username": "{{user}}", "password": "{{password}}"}
Если логин/пароль правильный ответ будет такой:
{ "token": "eyJ0eXAiOiJKV1QiLCJhbGciO..."}
Если нет, то такой (в этом случае пользователю должна показыватся чтологин или пароль неправильный):
{ "non_field_errors": [ "Unable to log in with provided credentials." ]}
Полученный jwt токен нужно хранить в cookies если пользователь выбрал "Запомнить", если нетто в состояний веб страницы, чтобы при закрытий вкладки доступ пропадал. Jwt токен нужно периодический обновлять с помощью /api-token-refresh/ но это останется на следующий этап.
JWT токен нужно использовать в заголовке Authorization в других запросах:
Authorization: JWT
/api/manager/user/info. А logout релизуется без вызова на сервер, просто нужноудалить jwt токен.
Все описанное разделил на следующие подзадачи:
- Реализовать страницу логина с полями: логин, пароль, запомнить
- Показ ошибок при неуспешной авторизаций
- Функционал "Запомнить"
- Показ имя пользователя на странице, таким образом показывая что пользователь авторизован
- Logout