/
asigatchov
/
vb-ai-api
Обзор
Документация
Войти
/
asigatchov
/
vb-ai-api
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/config/security.py
38 строк
1 KB
Alexander Sigatchov
init
09 фев 2026, 08:49
09 фев 2026, 08:49
b989369
Код
Авторство
О чём код?
import hashlib import secrets from datetime import UTC, datetime from fastapi import HTTPException def now_iso() -> str: return datetime.now(UTC).isoformat() def today_iso() -> str: return datetime.now(UTC).date().isoformat() def generate_token() -> str: return secrets.token_urlsafe(32) def hash_password(password: str) -> str: salt = secrets.token_hex(8) digest = hashlib.sha256(f"{salt}:{password}".encode("utf-8")).hexdigest() return f"{salt}${digest}" def verify_password(password: str, stored_hash: str) -> bool: salt, digest = stored_hash.split("$", 1) check = hashlib.sha256(f"{salt}:{password}".encode("utf-8")).hexdigest() return check == digest def parse_bearer_token(authorization: str | None) -> str: if not authorization: raise HTTPException(status_code=401, detail="Authorization header required") prefix = "Bearer " if not authorization.startswith(prefix): raise HTTPException(status_code=401, detail="Expected Bearer token") return authorization[len(prefix) :].strip()