에러 상황
Postman에서 사용자 정보 조회를 위해 인증 토큰을 Header로 Bearer token 전달을 하였으나, 다음과 같은 응답이 나옴
{
"detail": "Given token not valid for any token type",
"code": "token_not_valid",
"messages": [
{
"token_class": "AccessToken",
"token_type": "access",
"message": "Token has no id"
}
]
}
jwt.io 에서 토큰 정보에 user_id가 포함되어 있는 것도, 만료 기간이 한참 남은 것도 확인했으나,
여전히 token_not_valid가 나옴
이부분은 잘 정리된 에러 해결 방법이 없기에, 해결하기까지 무한 토큰 복사를 진행했다..
결국 GPT와 함께 해결!
에러 원인
아무래도 복붙했던 jwt 토큰의 문제가 있었던 것 같다.
위 응답을 보면 계속해서 token_type으로 "access"를 원하는데, 내가 붙여넣은 토큰은 액세스 토큰이 아니었던 것
따라서, access token을 확실하게 얻어내는 것이 중요하다
에러 해결
프로젝트의 urls.py에 다음을 추가하자.
from rest_framework_simplejwt.views import TokenObtainPairView
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
그리곤 Postman에 api/token 과 해당 사용자의 정보를 넘기면
{
"refresh": "ey~~",
"access": "ey~~"
}
이런식으로 토큰이 뜨고, 밑줄 access의 토큰을 복붙해서 header에 넘기면 된다.
아흑 너무 힘들었어