现在的情况是用户登录在springboot中生成了token字符串,保存在前端内存中。前端在访问另外一个python项目市,在python中想从这个token中解析出保存的信息,在python中解析时一直报错。
Java生成token代码:
public static final String SECRET = "Secret";
HashMap<String, Object> map = new HashMap<>();
map.put(ROLE, username);
map.put(USERNAME, username);
String jwt = Jwts.builder()
.setClaims(map)
.setExpiration(new Date(System.currentTimeMillis() + EXPIRATION_TIME))
.signWith(SignatureAlgorithm.HS512, SECRET)
.compact();
python中解析token字符串代码(pyjwt),
import jwt
jwt.decode(token, 'Secret', algorithms=['HS512'])
一直报错
raise InvalidSignatureError('Signature verification failed')
jwt.exceptions.InvalidSignatureError: Signature verification failed
在stack overflow上面查看相关的问题的时候有人说是要base64解码一次密钥,我试了一下还是不行,反倒是会报出在解码时报错
这个是stack overflow上面相似问题的回答。
请问是我的解析的代码有问题还是其他什么原因。
python版本是3.7.5
pyjwt版本是1.7.1
java 里面的
SetClaims
自定义了Claim
,但是在pyjwt
中好像不支持这种方式。https://pyjwt.readthedocs.io/...