티스토리 뷰
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에 팀원이 답변으로 달아두었습니다.
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
- 개발언어추천
- 상업용무료폰트
- ssafy합격후기
- 브왈라
- SSAFY
- 싸피6기
- 깃허브계정
- 코딩도서
- 깃허브계정2개
- 임대차3법
- 폰트추천
- ssafy6기
- 무료폰트추천
- 개발자커리
- 맥과윈도우로깃허브
- 개발자책추천
- 클린코드
- 디즈니얼굴
- 개발자
- 폰트
- intj여자
- 개발자로드맵
- 한글무료폰트추천
- 싸피
- 개발언어순위
- 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 | 29 | 30 |
글 보관함