JWT 는 보통 client가 server에게 자신의 요청을 검증하기 위해 사용한다.
반대로 client가 server의 응답을 확인하는 로직을 JWT로도 구성해 봤는데, 이 때 아래와 같은 에러가 발생하였다.
if response.status_code == 200:
print(response.text)
server_payload = jwt.decode(response.text, secret, algorithms=['HS256'])
# 위 코드에서 아래에러 발생
raise DecodeError("Invalid crypto padding") from err
inascii.Error: Incorrect padding
찾아보니 response.text는 "aaaa" 형태로 인식되는데, 이 때 (") 까지 들어가는게 문제라고 한다. 그래서 이를 제거하는 replace
를 넣어 문제 해결
if response.status_code == 200:
print(response.text)
server_payload = jwt.decode(response.text.replace('"',''), secret, algorithms=['HS256'])