/
DisVic
/
task-tracker
Обзор
Документация
Войти
/
DisVic
/
task-tracker
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
app/core/security.py
27 строк
955 B
DisappearedVictory
minor changes
27 дек 2025, 23:37
27 дек 2025, 23:37
68ba3cd
Код
Авторство
О чём код?
from datetime import datetime, timedelta, timezone from jose import jwt, JWTError from passlib.context import CryptContext from app.core.config import settings pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") def hash_password(p: str) -> str: return pwd_context.hash(p) def verify_password(p: str, hashed: str) -> bool: return pwd_context.verify(p, hashed) def create_access_token(sub: str) -> str: expire = datetime.now(timezone.utc) + timedelta(minutes=settings.access_token_expire_minutes) payload = {"sub": sub, "exp": expire} return jwt.encode(payload, settings.jwt_secret, algorithm=settings.jwt_algorithm) def decode_token(token: str) -> str: try: payload = jwt.decode(token, settings.jwt_secret, algorithms=[settings.jwt_algorithm]) sub = payload.get("sub") if not sub: raise ValueError("No sub") return sub except (JWTError, ValueError): raise