docs folder with steps
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# Шаг 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 авторизации
|
||||
|
||||
```javascript
|
||||
// Проверка роли
|
||||
function requireRole(roles: string[]) {
|
||||
// Проверяет, что user.role входит в массив roles
|
||||
}
|
||||
|
||||
// Проверка подразделения (для manager)
|
||||
function requireDepartment(departmentId: string) {
|
||||
// Проверяет, что user.department_id === departmentId
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Результат
|
||||
|
||||
- Работающий вход по логину/паролю
|
||||
- Защищённые API роуты
|
||||
- Разграничение прав по ролям
|
||||
Reference in New Issue
Block a user