JWT 在 NodeJS 中签名,但无法在 Java 中验证

问题描述

我想将 JWT 令牌从 NodeJS 服务传递到 Java 中的另一个服务。但是,根据我的尝试,每当我尝试在 Java 端验证令牌时,令牌总是无效的。我确实理解 JWT 是平台无关的,但我无法弄清楚为什么无法在 Java 端验证令牌。

错误:io.jsonwebtoken.security.SignatureException:JWT 签名与本地计算的签名不匹配。 JWT 有效性无法断言且不应被信任

NodeJS 签署令牌(使用 express-jwt 库)

    const jwtPayload = { id: "admin" };
    const secret = " ... some secret ...";
    const jwtData = { expiresIn: 2h };
    const access_token = jwt.sign(jwtPayload,secret,jwtData);

Java 验证令牌(使用 io.jsonwebtoken)

String secret = "...same as on the nodejs side"
String accesstoken = " .. access_token from nodejs .. "
String username = Jwts.parserBuilder().setSigningKey(secret).build().parseClaimsJws(accesstoken).getBody().getSubject();

我没有在 NodeJS 端或 Java 端设置任何额外的选项。我是否缺少任何一个平台上的一些配置?还是我应该使用不同的库?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)