【发布时间】:2017-06-15 12:43:05
【问题描述】:
我收到了一个由 java 程序使用 jjwt 模块创建的 JWT 令牌。 现在,当我尝试使用 pyjwt 验证令牌时,它会抛出异常。
import jwt token
token='eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMDAiLCJyb2xlcyI6IkJVU0lORVNTVVNFUiIsIm1vZGUiOiJzdG9yZWFwcCIsImlhdCI6MTQ5NDg1ODk4MCwiZXhwIjoxNDk0ODY0OTgwfQ.ckFnGv1NT-Ui2S90DNr50YoHSXc1ZLBNnEErnGMWL-E'
secret ='123456AB'
jwt.decode(token,secret,algorithms='HS256')
Traceback(最近一次调用最后一次):文件“”,第 1 行,in 文件 "/Applications/anaconda/envs/modulename/lib/python3.5/site-packages/jwt/api_jwt.py", 第 64 行,在解码中 选项,**kwargs)文件“/Applications/anaconda/envs/modulename/lib/python3.5/site-packages/jwt/api_jws.py”, 第 116 行,在解码中 密钥,算法)文件“/Applications/anaconda/envs/modulename/lib/python3.5/site-packages/jwt/api_jws.py”, 第 186 行,在 _verify_signature 中 raise DecodeError('签名验证失败') jwt.exceptions.DecodeError: 签名验证失败
如果我在 jwt.io 中使用相同的令牌,并选中 base64 加密选项,它似乎可以工作。
【问题讨论】: