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

6.0 KiB
Raw Blame History

Руководство по миграции с 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

Ручное тестирование:

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