|
|
|
|
@@ -182,9 +182,9 @@ type ItemPlacement struct {
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 🔐 Этап 2: Аутентификация (Неделя 2)
|
|
|
|
|
## 🔐 Этап 2: Аутентификация (Неделя 2) ✅ ЗАВЕРШЁН
|
|
|
|
|
|
|
|
|
|
### Шаг 2.1: JWT аутентификация
|
|
|
|
|
### Шаг 2.1: JWT аутентификация ✅
|
|
|
|
|
- [x] Создать `internal/auth/jwt.go`
|
|
|
|
|
- [x] Реализовать генерацию и валидацию JWT токенов
|
|
|
|
|
- [x] Добавить organization-scope в токены
|
|
|
|
|
@@ -201,12 +201,12 @@ type Claims struct {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Шаг 2.2: Хеширование паролей
|
|
|
|
|
### Шаг 2.2: Хеширование паролей ✅
|
|
|
|
|
- [x] Создать `internal/auth/password.go`
|
|
|
|
|
- [x] Использовать bcrypt для хеширования
|
|
|
|
|
- [x] Добавить функции проверки паролей
|
|
|
|
|
|
|
|
|
|
### Шаг 2.3: API endpoints для аутентификации
|
|
|
|
|
### Шаг 2.3: API endpoints для аутентификации ✅
|
|
|
|
|
- [x] `POST /api/auth/register` - регистрация организации и пользователя
|
|
|
|
|
- [x] `POST /api/auth/login` - вход в систему
|
|
|
|
|
- [x] `POST /api/auth/refresh` - обновление токена (опционально)
|
|
|
|
|
@@ -226,6 +226,13 @@ type LoginRequest struct {
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Результаты тестирования:**
|
|
|
|
|
- ✅ Регистрация: `POST /api/auth/register` - 201 Created
|
|
|
|
|
- ✅ Вход: `POST /api/auth/login` - 200 OK
|
|
|
|
|
- ✅ Middleware: JWT токены проходят валидацию
|
|
|
|
|
- ✅ JSON поля: исправлена конвертация в PostgreSQL
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 🏗️ Этап 3: API структура (Неделя 3)
|
|
|
|
|
|