Skip to content

Latest commit

 

History

History
23 lines (19 loc) · 3.14 KB

auth-jwt.md

File metadata and controls

23 lines (19 loc) · 3.14 KB

Authentication & JWT

NB! Для успешного прохождения тестов обязательно наличие в БД юзера с логином - admin, паролем - admin.

Базовая реализация

  1. Пароли пользователей сохраняются в базу в виде хэша с использованием bcrypt (либо аналогичного пакета, например, bcryptjs). плюс 20 баллов.
  2. Добавлен роут /login, связанная с ним логика разделена между контроллером и соответствующим сервисом. В случае отсутствия юзера в БД, возвращается 403 (Forbidden) HTTP статус. плюс 20 баллов.
  3. JWT токен содержит userId и login, секретный ключ хранится в .env плюс 20 баллов.
  4. Доступ ко всем роутам, за исключением /login, /doc и /, требует аутентификации плюс 20 баллов.
  5. Проверка на наличие токена в реквесте реализована в отдельном модуле на уровне приложения. В случае если токен не валидный, или отсутствует, возвращается 401 (Unauthorized) HTTP статус. плюс 20 баллов.

Штрафы:

  • Наличие изменений в тестах либо в workflow минус 100 баллов
  • Внесение изменений в репозиторий после дедлайна не считая коммиты, вносящие изменения только в Readme.md минус 30% от максимального балла за задание (для этого задания 30 баллов)
  • За каждую ошибку линтера при запуске npm run lint на основе локального конфига минус 20 баллов (именно errors, не warnings)
  • За каждую ошибку компилятора минус 20 баллов
  • Все тесты npm run test:auth должны проходить успешно, каждый не пройденный тест минус 20 баллов.
  • Имеется явно указанный тип any минус 20 баллов за каждое использование
  • За отсутствие отдельной ветки для разработки минус 20 баллов
  • За отсутствие Pull Request минус 20 баллов
  • За неполную информацию в описании Pull Request (отсутствует либо некорректен один из 3 обязательных пунктов) минус 10 баллов
  • Меньше 3 коммитов в ветке разработки, не считая коммиты, вносящие изменения только в Readme.mdминус 20 баллов