# Руководство по миграции с 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 ``` ### 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 токены больше не будут работать. Все пользователи должны будут войти заново через новую систему авторизации.