FastAPI는 인증을 구현하기 위한 내장 도구(OAuth2PasswordBearer, 보안 유틸리티)를 제공하며, 흔히 OAuth2 password flow와 JWT 토큰을 사용합니다. 이 패턴은 토큰 발급(로그인)과, 보호된 라우트에서 토큰을 검증하는 의존성을 결합합니다.
비밀번호 해싱과 로그인 시 JWT 발급
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, : }
