Blue Chicken - The Legend Of Zelda
본문 바로가기

개인공부

fastapi docs에서 login, logout 테스트 잘 안됨

 

fastapi docs에서는 logout api가 잘 작동하지 않을 수도 있나요?

 

FastAPI의 자체 문서화 기능 (Swagger UI / ReDoc)를 사용하여 API를 테스트할 때, logout 엔드포인트 같은 경우는 토큰을 요구하는 특별한 종류의 요청이 있을 수 있습니다.

logout 엔드포인트는 토큰이 제공되어야 하는데, 이 토큰은 login을 통해 제공된 토큰입니다. 문제는 Swagger UI나 ReDoc 같은 테스트 도구들은 이러한 상태를 유지하거나 이전 요청에서 받은 응답을 다음 요청에 사용하는 기능을 제공하지 않습니다. 따라서, 브라우저 상에서 직접 이러한 요청을 보내는 것은 어려울 수 있습니다.

이 문제를 해결하는 한 가지 방법은 FastAPI 애플리케이션을 실행하고 Postman, Insomnia 등의 API 테스팅 도구를 사용하여 login 및 logout 요청을 수행하는 것입니다. 이러한 도구들은 이전 요청의 응답을 쉽게 다음 요청에 사용할 수 있게 해주며, 쿠키나 세션과 같은 상태를 유지하는데 필요한 기능들을 제공합니다.

또 다른 방법으로는 코드를 직접 실행하여 login과 logout 엔드포인트를 테스트하는 것입니다. 이렇게 하면 원하는 요청을 정확히 조정하고 반환된 결과를 확인할 수 있습니다.


코드가 정확하다는 전제하에 진행되어야 함

코드가 문제가 아니라 fastapi docs에는 토큰이 저장되지 않아서 안됐고

postman에서 아래와 같이 해줘야 제대로 먹힘, raw는 안먹혔음

OAuth2PasswordRequestForm은 HTTP 요청 본문에서 form data를 기대합니다. 이를 Postman으로 테스트하려면, 요청 본문을 JSON 형식이 아닌 form-data로 보내야 합니다.

 

  1. Postman에서 "Body" 탭을 선택합니다.
  2. "x-www-form-urlencoded" 또는 "form-data"를 선택합니다.
  3. "Key-Value Edit" 영역에 필드를 추가합니다:
    • "Key"에 username, "Value"에 사용자 이름을 입력합니다.
    • "Key"에 password, "Value"에 비밀번호를 입력합니다.
  4. "Send" 버튼을 클릭하여 요청을 보냅니다.

아 드디어 로그아웃 성공함

logout은 Headers에서 해야함

토큰 가지고 와서 Value에 Bearer : <내 토큰> 의 내 토큰 자리에 넣어줘야함