În aplicațiile stateless, starea de autentificare este împachetată într-un JSON Web Token (JWT) semnat criptografic. Acesta conține identitatea utilizatorului (sub), data expirării (exp) și rolurile de securitate.
Folosind biblioteca modernă PyJWT, tokenurile sunt create la login și decodate la fiecare cerere în interiorul unei dependențe FastAPI, verificând automat dacă semnătura este legitimă și dacă tokenul nu a expirat.
Exemplu: Generare și decodare token JWT cu timp de expirare
import jwt
import datetime
SECRET_KEY = "cheie_secreta_foarte_lunga_si_sigura_de_productie"
ALGORITHM = "HS256"
def create_access_token(data: dict, expires_delta: datetime.timedelta = datetime.timedelta(minutes=30)) -> str:
to_encode = data.copy()
expire = datetime.datetime.now(datetime.timezone.utc) + expires_delta
to_encode.update({"exp": expire})
encoded_jwt = jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM)
return encoded_jwt
def decode_access_token(token: str) -> dict:
# Verifică automat semnătura și expirarea (aruncă jwt.ExpiredSignatureError dacă a expirat):
return jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
Întrebări & Exemple de Cod:
Generarea și Validarea Tokenurilor JWT (PyJWT)Ai o nelămurire despre utilizarea comenzii
Generarea și Validarea Tokenurilor JWT (PyJWT)sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.