'str' object has not attribute decode
이 문제 때문에 상당히 애를 먹었다가, 이 댓글을 보고 해결했다. pip install 'PyJWT==1.7.1' --force-reinstall
TokenObtainPairView에 접근하려할 때 DEFAULT_AUTHENTICATION_CLASSES옵션 때문에 예외를 설정해야하나 싶어 문서를 찾아보니 아니었다.
TokenObtainPairView는 TokenViewBase를 상속받는데, attributes를 보니 authenticaion_classes와 permission_classes가 비어있다.
그 말은 접근하는데 제한이 없다는 것이다! LoginAPIView를 만들려 했던 코드를 지웠다.
Sign In Vue
API 설정
'str' object has not attribute decode 이 문제 때문에 상당히 애를 먹었다가, 이 댓글을 보고 해결했다.
pip install 'PyJWT==1.7.1' --force-reinstall
TokenObtainPairView에 접근하려할 때 DEFAULT_AUTHENTICATION_CLASSES옵션 때문에 예외를 설정해야하나 싶어 문서를 찾아보니 아니었다. TokenObtainPairView는 TokenViewBase를 상속받는데, attributes를 보니 authenticaion_classes와 permission_classes가 비어있다. 그 말은 접근하는데 제한이 없다는 것이다! LoginAPIView를 만들려 했던 코드를 지웠다.SIgnIn.Vue
TokenObtainPairView는 검증이 완료되었다면 access토큰과 refresh토큰을 주는데, access는 인증에 필요하고, refresh는 말 그대로 갱신에 필요하다. 따라서 로컬스토리지에 저장할 때 둘 다 저장해야한다. https://github.com/10cheon00/RESTful-blog/blob/a6a35b43153f01884eb3e5a354834764062b1964/blog_project/frontend/src/components/Blog.vue#L38-L44 이제 매번 api에 요청을 할 때마다 토큰을 헤더에 넣어 요청해야한다. 다른 점은 Authorization 값에 JWT대신 Bearer가 들어간다는 점이다. simpleJWT는 Bearer 방식을 사용한다. 좀만 찾아보면 나오는 것 같다. 공부하기!