在user微服务中登录时生成了jwt,而在order微服务中想解析时,出现了经典报错:“JWT signature does not match locally computed signature. JWT validity cannot”,JWT签名与本地计算的签名不匹配。无法断言JWT有效性,不应信任JWT有效性。
该问题是因为在user和order中的jwt使用的SECRET_KEY不一致所导致的,当使用Keys.secretKeyFor(SignatureAlgorithm.HS256)方式生成时,不同微服务持有的SECRET_KEY不一致,官方给出的解决方法是使用Keys.hmacShaKeyFor(Decoders.BASE64.decode(secretString))生成,使用此方法能保证不同微服务所持有的SECRET_KEY是一致的,需要注意的是secretString的长度需要足够,否则会报长度不够的错误。