1. 问题背景
最近在协助团队小盆友调试一个验签问题,结果还“节外生枝”
了,原来不是签名过程的问题,是token的问题。
当你看到“JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not be trusted.”
,是不是也会产生错觉?
2. 解决过程
看到JWT,博主立刻想到网关某个地方的问题,遂按图索骥一番,果然找到了。原来是这行代码的问题:
/**此处secret指appSecret,token是客户端提供的token*/
Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody();
也就是这行代码,在解析客户端提交的token的时候,发生了异常。所以此刻,该怎么办?try一下呗,避免未知异常,提前catch并反馈客户端。
3. 总结经验
我们在使用JWT做接口鉴权时,通常会校验token是否为空,是否正确等。如果解析token失败时,即会触发以上exception。