
1. 비밀번호를 뭐를 넣던간에 너무 길다고 오류
- 비슷한 사례
- “bcrypt 5.0.0이 릴리스된 이후 비밀번호가 실제로 짧았음에도 ‘… longer than 72 bytes’ 에러가 나타났음”
self._stub_requires_backend()
...
if detect_wrap_bug(IDENT_2A):
ValueError: password cannot be longer than 72 bytes

- 원인: bcrypt 버전이 5.x 일 경우 호환 문제
- 해결방법:
poetry add bcrypt==4.3.0 버전 내리기

2. 로그아웃 코드 넣고 부터 다시 오류파티

(trapped) error reading bcrypt version
AttributeError: module 'bcrypt' has no attribute '__about__'
- 문제1: 등록을 하면 실행이 안됨
- 원인: bcrypt(4.x 이상) 버전부터 about.version 속성이 없어졌기 때문에
passlib이 구버전용 코드를 실행하려다 에러
- 해결:
poetry add "bcrypt==3.2.2" 버전 내리기 (현제 4.3.0)
- 로그아웃 코드를 넣기전에는 실행이 잘되었는데 왜 추가하고 나서 터지는가?
- 로그아웃코드 때문은 아니고 로그아웃 기능을 추가함으로써 프로젝트가 전체 다시 실행 되고
- 새로 임포트 되면서
pwd_context = CryptContext(schemes=["bcrypt"])가 초기화
- 즉, 앱이 재시작되면서 bcrypt 버전 불일치가 표면화된 것
3. 등록 / 로그인 은 완전하게 작동하는데 로그아웃의 문제


4. 로그아웃이 postman에서는 가능한데 docs에서는 안됨

- OAuth2PasswordBearer
- HTTPBearer
- 원인
- Postman은 직접 Authorization → Bearer Token으로 토큰을 헤더에 넣으면
- token: str = Depends(oauth2_scheme) 이 코드가 토큰을 읽고
- jwt.decode() → payload 검증 → 통과
- Swagger (docs)에서는 OAuth2PasswordBearer(tokenUrl="/auth/login")을 쓰면
- Swagger는 “OAuth2 Password Flow 전체를 처리하는 UI”를 띄우는데
- 이 UI는 로그인 요청 → 토큰 발급 → 헤더 삽입을 자동으로 해주지 않음
- docs에서는 Authorization 헤더가 비어 있으니 FastAPI가 401 내보냄
- 즉, Swagger가 “자동으로 토큰을 들고 가는” 걸 지원 안 하는 구조
OAuth2PasswordBearer 터미널에서 작동 확인하기
