Фрилансеры предложат решение вашей задачи уже через несколько минут!
Публикация заказа не займет много времени.
Роман Касин
32 года, Россия
2 года в сервисе
Был онлайн 1 день назад

Работаем по 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