首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在node.js中生成的JWT(JSON Web Token)未在java中验证

在node.js中生成的JWT(JSON Web Token)未在java中验证
EN

Stack Overflow用户
提问于 2016-07-21 17:42:17
回答 1查看 728关注 0票数 1

我正在生成JWT使用Node.js与require('jsonwebtoken')使用公钥,这是由puttygen工具在windows生成。然后,我会在头部中将该令牌传递给其他应用程序。另一个应用程序不是用Node.js开发的。使用java时,我需要用公钥验证令牌。但我没有找到一个有效的样本来验证使用公钥/私钥。

有没有人能告诉我如何在java中加载公钥/私钥并验证jwt令牌的步骤。请提供我的例子,如果你有。提前谢谢。

示例公钥(public.pem) :-

代码语言:javascript
复制
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20160721"
AAAAB3NzaC1yc2EAAAABJQAAAQEAhk1i7Jwz2M6zakReDgg0NkVPn1kK1R8qAp2p
Ayh0eUPCb2XICDDVRnpUIK7/4k4dlLeeSi10TwwXe85zZ0gXcNMIOpnEKIWcnqJM
ctbYwyrl2tAb/tKjvBCvHMA9ZnfNADkN6reBZq8u7kYJ3bF9PxvS3QM+vgJ8/8ZS
qkRWcsmRZdq+wthwGt43J3NSKFfhMVP08/V/hTASq06vvFYApHsEH6zLxNNQ63Tt
Bzedh+C5efyqYqEVqnA7S9bXimyY2ViqpqFTx1lM9dV+12dSOxd7CQzX8eo00Phi
EAnY2hfoTooUeCO3/L6YavRl+CXgjhvA9mg4QO554qI1YCUvBw==
---- END SSH2 PUBLIC KEY ----

节点JS代码:-

代码语言:javascript
复制
var privateKey = fs.readFileSync("public.pem");
var userData = {username:'John'};
var token = jwt.sign(userData, privateKey);

Java代码:-

需要java代码,可以使用上面的公钥验证上面的令牌。

EN

回答 1

Stack Overflow用户

发布于 2016-07-22 00:53:04

加密操作独立于编程语言。您可以完美地在nodeJS中生成JWT并在Java中进行验证。

JWT使用私钥进行数字签名,签名使用公钥进行验证。对于HMAC对称密钥,签名和验证的密钥是相同的。

使用像https://github.com/jwtk/jjwt这样的JWT库

代码语言:javascript
复制
 Jwts.parser().setSigningKey(key).parseClaimsJws(compactJws);

在页面中,您可以看到支持的算法。

Putty使用自己的密钥格式。Java不支持它。您需要将Putty SSH2密钥导出为OpenSSH格式。请参阅How can I read RSA keys in Java?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38500599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档