问题
异常提示:JWT signature does not match locally computed signature. JWT validity cannot be asserted and should not be trusted.
中文意思是:JWT签名与本地计算的签名不匹配。无法断言JWT有效性,不应信任JWT有效性。
解决
出现这种异常的情况有:
1、生成token时用的密钥和验签时用的密钥不一致。KEY_SERCRET不同
通过打断点的方式debug检查对比两个地方的密钥是否一致。
2、验签时使用的令牌不对。通过打断点的方式debug检查,生成的令牌和回传的令牌是否一致。
通过cookie传递数据时需注意传递的token的格式是否正确,token是一串字符串且不带双引号,不能使用JSON.stringify()方法进行格式转换!!!
我遇到的情况是第2种,就是被验签的令牌是错误的,因为回传令牌中多了一对单引号导致的此异常。需要debug看内存中传输的值才能看出来。