티스토리 뷰
File "/back-end/venv/lib/python3.9/site-packages/rest_framework_jwt/serializers.py", line 60, in validate 'token': jwt_encode_handler(payload), File "/back-end/venv/lib/python3.9/site-packages/rest_framework_jwt/utils.py", line 92, in jwt_encode_handler return jwt.encode( AttributeError: 'str' object has no attribute 'decode')
에러원인
- simple-jwt 로 인한 기존 jwt 버젼 업그레이드
- 버젼 업그레이드되면서 str 을 또다시 decode(utf-8)로 디코딩하게되어 중복이 발생
해결방안
1. 기존 jwt 버젼 1.7.1로 다운그레이드
2. 업데이트된 jwt 버젼 라이브러리 수정
2번 방안에 대한 구체적인 해설을 stackoverflow에 팀원이 답변으로 달아두었습니다.
'str' object has no attribute 'decode' on djangorestframework_simplejwt
I was trying to follow this quick start from djangorestframework-simplejwt documentation with link https://django-rest-framework-simplejwt.readthedocs.io/en/latest/getting_started.html But I have p...
stackoverflow.com
2번 방안
# /venv/lib/python3.9/site-packages/rest_framework_jwt/utils.py
def jwt_encode_handler(payload):
key = api_settings.JWT_PRIVATE_KEY or jwt_get_secret_key(payload)
return jwt.encode(
payload,
key,
api_settings.JWT_ALGORITHM
)#.decode('utf-8') ==> delete this
추가적인 에러 발생시 이하 코드로 수정합니다.
rest_framework.request.WrappedAttributeError: module 'jwt' has no attribute 'ExpiredSignature'
# /venv/lib/python3.9/site-packages/rest_framework_jwt/authentication.py
try:
payload = jwt_decode_handler(jwt_value)
except jwt.ExpiredSignatureError: # ExpiredSignature => no more exists
msg = _('Signature has expired.')
raise exceptions.AuthenticationFailed(msg)
except jwt.DecodeError:
msg = _('Error decoding signature.')
raise exceptions.AuthenticationFailed(msg)
except jwt.InvalidTokenError:
raise exceptions.AuthenticationFailed()
'Django Framework' 카테고리의 다른 글
[미해결] Django Seed 활용하여 MTM 포함한 모델의 test data 생성하기 (0) | 2021.12.24 |
---|---|
Django Seed 활용하여 FK 포함한 모델의 test data 생성하기 (0) | 2021.12.24 |
refresh token 사용시, 5분 후 로그아웃 되었을 때 프론트에서 로그아웃처리가 안되는 에러 (0) | 2021.12.16 |
Django 권한설정 permission_classes (0) | 2021.12.15 |
Django JWT 설정 및 SECRET KEY 숨기기 (0) | 2021.12.15 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 브왈라
- 깃허브계정2개
- 폰트
- 개발자도서추천
- 개발언어추천
- 개발자로드맵
- 무료폰트추천
- 싸피
- 코딩도서
- 개발언어순위
- 싸피6기
- 한글무료폰트추천
- 클린코드
- 개발자
- 폰트추천
- ssafy합격후기
- 개발자책추천
- 상업용무료폰트
- 깃허브계정
- intj여자
- 맥과윈도우로깃허브
- 임대차3법
- 개발도서추천
- ssafy결과
- 클린코더
- ssafy6기
- SSAFY
- 개발자커리
- ssafy후기
- 디즈니얼굴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함