FastAPI menyediakan tools bawaan (OAuth2PasswordBearer, security utilities) untuk mengimplementasikan autentikasi, umumnya menggunakan OAuth2 password flow dengan JWT tokens. Pola ini menggabungkan penerbitan token (login) dengan dependency yang memvalidasi token pada route yang dilindungi.
Hashing password dan penerbitan JWT pada 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, : }
