10cheon00 / drf-practice

0 stars 0 forks source link

Added Login.vue #11

Closed 10cheon00 closed 3 years ago

10cheon00 commented 3 years ago

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 방식을 사용한다. 좀만 찾아보면 나오는 것 같다. 공부하기!