- Удален Basic Auth, заменен на современную JWT авторизацию - Добавлена страница входа с красивым интерфейсом - Обновлен фронтенд для работы с JWT токенами - Добавлены новые зависимости: PyJWT, passlib[bcrypt], jinja2 - Создан тестовый скрипт для проверки авторизации - Добавлено руководство по миграции - Обновлена документация и README - Улучшен дизайн поля ввода пароля на странице входа Автор: Сергей Антропов Сайт: https://devops.org.ru
6.0 KiB
6.0 KiB
Руководство по миграции с Basic Auth на JWT
🔄 Миграция с Basic Auth на JWT авторизацию
Это руководство поможет вам перейти с устаревшей системы Basic Auth на современную систему авторизации на основе JWT токенов.
📋 Что изменилось
✅ Новые возможности:
- JWT токены вместо Basic Auth
- Страница входа с современным интерфейсом
- Безопасные сессии с автоматическим истечением
- Защищенные API эндпоинты
- Автоматическое перенаправление на страницу входа
🔧 Технические изменения:
- Обновлен
app.py
с новой системой авторизации - Добавлена страница входа
templates/login.html
- Обновлен фронтенд для работы с JWT токенами
- Добавлены новые зависимости в
requirements.txt
- Обновлены переменные окружения
🚀 Быстрая миграция
1. Обновление зависимостей
# Остановите текущий сервис
make down
# Обновите зависимости
pip install -r requirements.txt
# или для Docker
docker compose build --no-cache
2. Обновление переменных окружения
# Обновите .env файл
LOGBOARD_USER=admin # Ваше имя пользователя
LOGBOARD_PASS=admin123 # Ваш пароль
SECRET_KEY=your-secret-key # Уникальный секретный ключ
AUTH_METHOD=jwt # Изменено с basic на jwt
SESSION_TIMEOUT=3600 # Время жизни сессии в секундах
3. Запуск обновленного сервиса
# Запустите обновленный сервис
make up
# Проверьте работу
make test-auth
🔐 Настройка безопасности
Рекомендуемые настройки для продакшена:
# Генерируйте уникальные ключи
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 |
🧪 Тестирование
Автоматическое тестирование:
# Запустите тесты авторизации
make test-auth
Ручное тестирование:
- Откройте браузер:
http://localhost:9001
- Должны быть перенаправлены на страницу входа
- Введите логин и пароль
- Проверьте доступ к панели управления
🔄 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 авторизация
- ✅ Создана страница входа
- ✅ Обновлен фронтенд
- ✅ Добавлены тесты авторизации
- ✅ Обновлена документация
🆘 Поддержка
Если у вас возникли проблемы с миграцией:
- Проверьте логи:
make logs
- Запустите тесты:
make test-auth
- Проверьте настройки в
.env
файле - Убедитесь, что все зависимости установлены
📞 Контакты
Автор: Сергей Антропов
Сайт: https://devops.org.ru
Примечание: После миграции старые Basic Auth токены больше не будут работать. Все пользователи должны будут войти заново через новую систему авторизации.