FASTAPI 시작하기 (5) - Fastapi Security

code_able·2023년 3월 12일
0

오늘은 fastapi Oauth2 기반
Fastapi Security를 구현해 보겠다.

jwt 토큰 발급

시스템에 접근이 허용됨을 인증 하기 위해 jwt토큰을 만들어 발급할 수 있도록 한다.
jwt 생성에는 다음을 주의하자
1. secret key는 복합하게 구성할 것
2. 256비트 단방향 암호화를 쓸 것
3. payload에 password같은 민감한 정보를 담지 말것
4. 만기 시간을 두어 탈취한 토큰으로 계속 접근 하는 것을 막을 것

from datetime import datetime, timedelta
import jwt

SECRET_KEY = "YOURSECRET"
ALGORITHM = "HS256"
ACCESS_TOKEN_EXPIRE_HOUR = 2*60*60

paylaod = {"exp": datetime.utcnow()+timedelta(seconds=ACCESS_TOKEN_EXPIRE_HOUR),
            "username": user_data["username"],
            SECRET_KEY,
            algorithm=ALGORITHM
           }

OAuth2PasswordBearer

OAuth2PasswordBearer라는 모듈을 사용하여
특정 api에서 토큰을 검증 하도록 할 수 있다.

from fastapi import Depends, FastAPI
from fastapi.security import OAuth2PasswordBearer

app = FastAPI()

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")


@app.get("/items/")
async def read_items(token: str = Depends(oauth2_scheme)):
    return {"token": token}
profile
할수 있다! code able

0개의 댓글