Spaces:
Running on Zero
Running on Zero
Download utils/security.py from Meshyboi/Intach-Pune: direct link, hf CLI and curl.
- Browser
- Download file 962 Bytes
-
https://huggingface.co/spaces/Meshyboi/Intach-Pune/resolve/main/utils/security.py
- Command line
-
hf download hf://spaces/Meshyboi/Intach-Pune/utils/security.py
-
curl -L -o security.py https://huggingface.co/spaces/Meshyboi/Intach-Pune/resolve/main/utils/security.py
962 Bytes
| from datetime import datetime, timedelta, timezone | |
| from typing import Any | |
| from jose import jwt | |
| from passlib.context import CryptContext | |
| from config import settings | |
| pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") | |
| def hash_password(password: str) -> str: | |
| return pwd_context.hash(password) | |
| def verify_password(plain_password: str, hashed_password: str) -> bool: | |
| return pwd_context.verify(plain_password, hashed_password) | |
| def create_access_token(subject: str, expires_delta: timedelta | None = None) -> str: | |
| expire = datetime.now(timezone.utc) + ( | |
| expires_delta or timedelta(minutes=settings.access_token_expire_minutes) | |
| ) | |
| payload: dict[str, Any] = {"sub": subject, "exp": expire} | |
| return jwt.encode(payload, settings.secret_key, algorithm=settings.jwt_algorithm) | |
| def decode_access_token(token: str) -> dict[str, Any]: | |
| return jwt.decode(token, settings.secret_key, algorithms=[settings.jwt_algorithm]) | |