/
Frozin
/
DIS-4
Обзор
Документация
Войти
/
Frozin
/
DIS-4
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
server/auth.py
35 строк
1 KB
Frozin-p
DB and Auth realization
16 дек 2025, 15:42
16 дек 2025, 15:42
962adcc
Код
Авторство
О чём код?
import jwt from datetime import datetime, timedelta from common.config import config import logging logger = logging.getLogger(__name__) class AuthService: @staticmethod def create_token(user_id: int, username: str) -> str: payload = { 'user_id': user_id, 'username': username, 'exp': datetime.utcnow() + timedelta(hours=24), 'iat': datetime.utcnow() } return jwt.encode(payload, config.JWT_SECRET, algorithm=config.JWT_ALGORITHM) @staticmethod def verify_token(token: str) -> dict: try: payload = jwt.decode(token, config.JWT_SECRET, algorithms=[config.JWT_ALGORITHM]) return payload except jwt.ExpiredSignatureError: logger.warning("Token has expired") return None except jwt.InvalidTokenError as e: logger.warning(f"Invalid token: {e}") return None @staticmethod def validate_api_key(api_key: str, db) -> bool: """Проверка API ключа (упрощенная аутентификация)""" return db.validate_api_key(api_key)