logboard/MIGRATION_GUIDE.md
Сергей Антропов a979dd2838 feat: Добавлена новая система авторизации с JWT токенами
- Удален Basic Auth, заменен на современную JWT авторизацию
- Добавлена страница входа с красивым интерфейсом
- Обновлен фронтенд для работы с JWT токенами
- Добавлены новые зависимости: PyJWT, passlib[bcrypt], jinja2
- Создан тестовый скрипт для проверки авторизации
- Добавлено руководство по миграции
- Обновлена документация и README
- Улучшен дизайн поля ввода пароля на странице входа

Автор: Сергей Антропов
Сайт: https://devops.org.ru
2025-08-17 18:29:06 +03:00

152 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Руководство по миграции с Basic Auth на JWT
## 🔄 Миграция с Basic Auth на JWT авторизацию
Это руководство поможет вам перейти с устаревшей системы Basic Auth на современную систему авторизации на основе JWT токенов.
## 📋 Что изменилось
### ✅ Новые возможности:
- **JWT токены** вместо Basic Auth
- **Страница входа** с современным интерфейсом
- **Безопасные сессии** с автоматическим истечением
- **Защищенные API** эндпоинты
- **Автоматическое перенаправление** на страницу входа
### 🔧 Технические изменения:
- Обновлен `app.py` с новой системой авторизации
- Добавлена страница входа `templates/login.html`
- Обновлен фронтенд для работы с JWT токенами
- Добавлены новые зависимости в `requirements.txt`
- Обновлены переменные окружения
## 🚀 Быстрая миграция
### 1. Обновление зависимостей
```bash
# Остановите текущий сервис
make down
# Обновите зависимости
pip install -r requirements.txt
# или для Docker
docker compose build --no-cache
```
### 2. Обновление переменных окружения
```bash
# Обновите .env файл
LOGBOARD_USER=admin # Ваше имя пользователя
LOGBOARD_PASS=admin123 # Ваш пароль
SECRET_KEY=your-secret-key # Уникальный секретный ключ
AUTH_METHOD=jwt # Изменено с basic на jwt
SESSION_TIMEOUT=3600 # Время жизни сессии в секундах
```
### 3. Запуск обновленного сервиса
```bash
# Запустите обновленный сервис
make up
# Проверьте работу
make test-auth
```
## 🔐 Настройка безопасности
### Рекомендуемые настройки для продакшена:
```bash
# Генерируйте уникальные ключи
SECRET_KEY=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 32)
# Используйте сложные пароли
LOGBOARD_PASS=YourComplexPassword123!
# Настройте время жизни сессии
SESSION_TIMEOUT=3600 # 1 час
```
### Переменные окружения:
| Переменная | Описание | Значение по умолчанию |
|------------|----------|----------------------|
| `LOGBOARD_USER` | Имя пользователя | `admin` |
| `LOGBOARD_PASS` | Пароль | `admin123` |
| `SECRET_KEY` | Секретный ключ для JWT | `your-secret-key-here` |
| `AUTH_METHOD` | Метод авторизации | `jwt` |
| `SESSION_TIMEOUT` | Время жизни сессии (сек) | `3600` |
## 🧪 Тестирование
### Автоматическое тестирование:
```bash
# Запустите тесты авторизации
make test-auth
```
### Ручное тестирование:
1. Откройте браузер: `http://localhost:9001`
2. Должны быть перенаправлены на страницу входа
3. Введите логин и пароль
4. Проверьте доступ к панели управления
## 🔄 API изменения
### Новые эндпоинты:
- `POST /api/auth/login` - вход в систему
- `POST /api/auth/logout` - выход из системы
- `GET /api/auth/me` - информация о текущем пользователе
### Изменения в существующих эндпоинтах:
Все API эндпоинты теперь требуют JWT токен в заголовке:
```
Authorization: Bearer <your-jwt-token>
```
### WebSocket изменения:
WebSocket соединения теперь используют JWT токены вместо base64 токенов.
## 🐛 Устранение неполадок
### Проблема: "Unauthorized" ошибки
**Решение:** Проверьте правильность логина и пароля в `.env` файле
### Проблема: Токен истекает слишком быстро
**Решение:** Увеличьте `SESSION_TIMEOUT` в настройках
### Проблема: Не работает WebSocket
**Решение:** Убедитесь, что JWT токен передается в URL параметре `token`
### Проблема: Страница входа не загружается
**Решение:** Проверьте, что `templates/login.html` существует и доступен
## 📝 Логи изменений
### Версия 2.0.0:
- ✅ Удален Basic Auth
- ✅ Добавлена JWT авторизация
- ✅ Создана страница входа
- ✅ Обновлен фронтенд
- ✅ Добавлены тесты авторизации
- ✅ Обновлена документация
## 🆘 Поддержка
Если у вас возникли проблемы с миграцией:
1. Проверьте логи: `make logs`
2. Запустите тесты: `make test-auth`
3. Проверьте настройки в `.env` файле
4. Убедитесь, что все зависимости установлены
## 📞 Контакты
**Автор:** Сергей Антропов
**Сайт:** https://devops.org.ru
---
**Примечание:** После миграции старые Basic Auth токены больше не будут работать. Все пользователи должны будут войти заново через новую систему авторизации.