[alibaba/nacos]2.2.0升级到2.2.1之后,登录报Invalid signature

2025-11-10 149 views
2

前提: 服务端token过期时间设置为24小时

问题: 2.2.0升级到2.2.1之后,前段登录显弹窗Invalid signature,接口登录403。重新登录后,问题解决。看了下2.2.1的release日志,应该是鉴权插件修改了

请问下,应用通过鉴权插件登录的情况下,是不是在token过期之前,应用的请求都会403?有办法可以平滑升级吗?

回答

2
"Invalid signature", 是因为你换了secret.key后,导致已登陆用户的jwt验签失败。不变更密钥就不会出现这个现象; 客户端基本都有重试机制,会重新尝试登录。
2

@YunWZ 1、是这个配置项吗?nacos.core.auth.plugin.nacos.token.secret.key,这个在升级的时候没有修改,用的默认的SecretKey012345678901234567890123456789012345678901234567890123456789 2、这个是有的,但是在token未过期的时候,不会重新登录

3

使用公开的默认密钥会有安全问题

7

@YunWZ 没有关系,我们因为重登录的插件有问题,所以密钥这块不能修改,现在比较麻烦的是,密钥没有改,升级会出现验签失败

2

哦,密钥没改的情况下出现Invalid signature,是因为之前固定使用HMAC256的验签方式,2.2.1里面则是根据密钥长度选择合适的加密算法(HMAC256/384/512)

2

这个可配置吗?

8

你可以试一下将密钥设置为U2VjcmV0S2V5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=,然后使用旧的jwt验证是否解决Invalid signature的问题。(我不确定是否有效)

3

@YunWZ 不太行,还是会报,使用旧的jwt是指在2.2.1上使用吗?请问这个如何指定

5

see https://nacos.io/zh-cn/blog/announcement-token-secret-key.html

3

过期时间是记录在客户端的, 未到时间前,客户端会一直用旧token请求, 所以需要先修改一下ttl。