Files
TestingWebApp/docs/шаги/03-auth.md
T
Константин Лебединский a68331c86b docs: статус проекта, инструкция dev, обновление всех .md
- PROJECT_STATUS: что сделано (черновики, версии, разбор, каталог) и планы
- DEV_CONTOUR_USER_GUIDE: сценарии для проверяющих на dev-стенде
- README, ТЗ, card1, журнал, бэклоги, шаги 01–11+README, спринты, TEST_TABLES: ссылки и примечания
- backend/PROGRESS: ссылка на PROJECT_STATUS

Made-with: Cursor
2026-04-24 22:12:06 +05:00

1.7 KiB

Шаг 3: Аутентификация и авторизация

Цель

Реализовать систему входа в систему и разграничения прав доступа.


Задачи

3.1. Аутентификация

  • Эндпоинт: POST /api/auth/login
  • Принимает: { login, password }
  • Возвращает: JWT токен в httpOnly cookie
  • Проверка пароля через bcrypt

3.2. Выход

  • Эндпоинт: POST /api/auth/logout
  • Очищает cookie с токеном

3.3. Защита роутов (Middleware)

  • Проверка валидности JWT
  • Извлечение user_id и роли из токена

3.4. Права доступа (RBAC)

Роль Доступ
HR Все операции
Manager Своё подразделение
Employee Только свои данные

3.5. Middleware авторизации

// Проверка роли
function requireRole(roles: string[]) {
  // Проверяет, что user.role входит в массив roles
}

// Проверка подразделения (для manager)
function requireDepartment(departmentId: string) {
  // Проверяет, что user.department_id === departmentId
}

Результат

  • Работающий вход по логину/паролю
  • Защищённые API роуты
  • Разграничение прав по ролям

Актуальная привязка к коду: ../PROJECT_STATUS.md · индекс шагов: README.md.