javaboiii의 Error | Exception

Error - 422 Unprocessable Entity(python)

javaboiii 2025. 3. 8. 23:27

422 Unprocessable Entity 에러는 주로 요청의 데이터 형식이나 요청 내용에 문제가 있을 때 발생

 

기존 코드

def get_current_user(credentials: HTTPAuthorizationCredentials = Security(security)) -> dict:
    """
    JWT 토큰을 검증하고, 사용자 정보를 반환하는 함수
    """
    token = credentials.credentials  # Bearer 토큰 추출
    user = decode_access_token(token)  # ✅ 기존의 decode_access_token()을 사용하여 검증

    if not user:
        raise HTTPException(status_code=401, detail="유효하지 않은 토큰입니다.")

    return user  # 검증된 사용자 정보 반환

# 퀴즈 데이터 가져오기 API (JWT 인증 필요)
@router.get("/quiz")
def get_quiz_data(user: dict = Depends(decode_access_token), db: Session = Depends(get_db)):

get_current_user에서 jwt 토큰을 추출하는 부분은 잘 처리되지만

get_quiz_data에서 decode_access_token 함수를 Depends에 바로 사용

 

decode_access_token 함수가 토큰을 제대로 못하거나 잘못된 값을 반환할 시

422에러가 발생

 

 

수정 코드

@router.get("/quiz")
def get_quiz_data(user: dict = Depends(get_current_user), db: Session = Depends(get_db)):

Depends에 get_current_user를 사용