Coverage for app\core\security.py: 0%
6 statements
« prev ^ index » next coverage.py v7.3.2, created at 2026-01-15 13:39 +0300
« prev ^ index » next coverage.py v7.3.2, created at 2026-01-15 13:39 +0300
1from datetime import datetime, timedelta, UTC
2import jwt
4from .config import settings
7def create_access_token(subject: str, role: str, session_id: str = "", expires_hours: int = 24) -> str:
8 payload = {
9 "sub": subject,
10 "role": role,
11 "session_id": session_id,
12 "iss": "admin-core",
13 "aud": "admin-web",
14 "exp": datetime.now(UTC) + timedelta(hours=expires_hours),
15 }
16 return jwt.encode(payload, settings.SECRET_KEY, algorithm="HS256")