Skip to content

Посторонним вход запрещён - #11

Merged
Paklosha merged 18 commits into
htmlacademy-nodejs-api:masterfrom
kordsdev:module8-task1
Sep 6, 2025
Merged

Paklosha merged 18 commits into
htmlacademy-nodejs-api:masterfrom
kordsdev:module8-task1

Conversation

@kordsdev

@kordsdev kordsdev commented Sep 5, 2025 •

Copy link
Copy Markdown

Adds comprehensive authentication and authorization features:

  • Introduces JWT-based authentication with secret key management
  • Implements token parsing and validation middleware
  • Adds private route protection for sensitive endpoints
  • Creates authentication-specific exception handling
  • Updates user model with password verification
  • Adds login endpoint with token generation
  • Secures multiple API routes with authentication checks
  • Removes redundant user ID fields from DTOs
  • Enhances error handling for authentication failures

🎓 Посторонним вход запрещён

d.korbut added 18 commits August 20, 2025 18:53
Добавляет библиотеку jose для работы с JSON Object Signing and Encryption (JOSE).

Это изменение необходимо для реализации функциональности, связанной с безопасностью и аутентификацией.
Добавляет переменные окружения для секретов JWT и JWT refresh токена.
Это необходимо для настройки аутентификации и обновления токенов.
Реализует функцию проверки пароля для аутентификации пользователя.
Добавляет поле id для хранения идентификатора пользователя.
Добавляет функциональность аутентификации пользователей посредством JWT.

Включает в себя создание сервиса аутентификации, DTO для логина пользователя,
а также конфигурационную схему для параметров JWT (секрет, время жизни, алгоритм).
Вводит собственные исключения для обработки ошибок аутентификации,
такие как не найденный пользователь и неверный пароль.

Это позволяет более четко обрабатывать ошибки аутентификации
и предоставляет больше информации об их причинах.
Добавляет фильтр исключений `AuthExceptionFilter` для обработки ошибок авторизации.

Этот фильтр перехватывает исключения типа `BaseUserException`, логирует ошибку и отправляет ответ с соответствующим HTTP-статусом и сообщением об ошибке. Другие типы ошибок передаются дальше по цепочке.
Внедряет фильтр исключений для обработки ошибок, связанных с аутентификацией.

Это обеспечивает централизованную обработку ошибок аутентификации и улучшает общее управление ошибками в приложении.
Добавляет функциональность аутентификации пользователя, используя сервис аутентификации.

Внедряет сервис аутентификации для проверки учетных данных пользователя и генерации токена.
Возвращает токен в ответе при успешной аутентификации.
Исправляет ошибки валидации DTO, возвращая статус BAD_REQUEST с деталями ошибок.

Улучшает процесс аутентификации, используя строковое представление ID пользователя для создания токена.
Добавляет дополнительные проверки и обработку ошибок для улучшения стабильности аутентификации и авторизации пользователей. Внедряет новые исключения и фильтры для централизованной обработки ошибок, что повышает информативность ответов при возникновении проблем.
Создает новый файл типизации для расширения интерфейса Request в Express, добавляя поле tokenPayload типа TokenPayload. Обновляет tsconfig.json для включения нового файла в компиляцию TypeScript.
Внедряет `ParseTokenMiddleware` для обработки токенов JWT в приложении. Это улучшает безопасность, добавляя проверку токенов при каждом запросе.
Обновляет логику создания комментариев, заменяя использование userId на authorId для более точной идентификации автора. Упрощает валидацию DTO, убирая временные поля и добавляя проверку для offerId. Также обновляет схему конфигурации JWT, увеличивая время жизни токена до 1 часа.
Создает класс `PrivateRouteMiddleware`, который проверяет наличие `tokenPayload` в запросе. Если токен отсутствует, выбрасывается ошибка с кодом UNAUTHORIZED. Это улучшает безопасность приложения, обеспечивая доступ к приватным маршрутам только для авторизованных пользователей.
… комментариев, предложений и пользователей

Внедряет `PrivateRouteMiddleware` в контроллеры для обеспечения доступа к приватным маршрутам только для авторизованных пользователей. Обновляет логику обработки запросов, добавляя проверки токена в соответствующих методах. Это улучшает безопасность приложения и защищает маршруты от несанкционированного доступа.
…еля и обновляет логику метода входа. Теперь метод проверяет наличие токена и находит пользователя по email, улучшая безопасность и обработку ошибок. Также убраны лишние поля из DTO для входа пользователя.
…еля, упрощая логику и улучшая безопасность. Убраны лишние поля из DTO для входа пользователя.
@keksobot keksobot changed the title Implements JWT-based user authentication and authorization Посторонним вход запрещён Sep 5, 2025
@Paklosha
Paklosha merged commit cefd5d7 into htmlacademy-nodejs-api:master Sep 6, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants