【发布时间】:2016-03-27 12:22:41
【问题描述】:
如何使用 Node.js 验证使用 JJWT (https://github.com/jwtk/jjwt) 在 Java 中创建的 JWT?如果我们像下面这样创建 JWT 并将值打印出来:
byte[] apiKeySecretBytes = DatatypeConverter.parseBase64Binary("something");
Key key = new SecretKeySpec(apiKeySecretBytes, SignatureAlgorithm.HS512.getJcaName());
JwtBuilder builder = Jwts.builder()
.setSubject(subject)
.signWith(SignatureAlgorithm.HS512, key);
System.put.println(builder.compact());
尝试在 Node.js 中解码打印出的字符串会导致签名无效错误:
var nJwt = require('jsonwebtoken');
var token = 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJKb2UifQ.dqJqRrJ1zDlNq79RAJqhbqme23Fq_Fh9M4MufE5AT8A7-c2yo3OgG71RMSsUxloceG0WaYwhz3WIprcdZsYY_Q',
secretKey = 'something';
var verifiedJwt = nJwt.verify(token,secretKey);
console.log(verifiedJwt);
上例中token值不正确,仅作为示例提供。
【问题讨论】:
-
如何验证,糟糕的屏幕分辨率...
-
您的意思是要求
njwt或jsonwebtoken吗? -
另外,请提供 jjwt 生成的实际令牌 - 这将有助于我们调试 :)
-
你能看看下面的答案是否适合你吗?