FastAPI fornisce strumenti integrati (OAuth2PasswordBearer, security utilities) per implementare l'autenticazione, comunemente usando il flusso password OAuth2 con token JWT. Il pattern combina l'emissione del token (login) con una dipendenza che valida il token sulle rotte protette.
Hashing delle password e emissione di un JWT al login
passlib.context CryptContext
jose jwt
datetime datetime, timedelta
pwd = CryptContext(schemes=[])
():
user = get_user(form.username)
user pwd.verify(form.password, user.hashed_password):
HTTPException(, )
token = jwt.encode(
{: user.username, : datetime.utcnow() + timedelta(minutes=)},
SECRET_KEY, algorithm=,
)
{: token, : }
