Auth0提供了两个JWT库,一个用于节点:node-jsonwebtoken,另一个用于Java:java-jwt。它turns outjava-jwt不支持公/私钥对。JWT:带公钥/私钥的jwtk/jjwt
但是,另一个java库jjwt声称支持该功能。但是,文档没有说明如何在jjwt中使用自己的公钥/私钥对。
我创建的私有/公共密钥对,并与node-jsonwebtoken用它成功地在节点:
var key = fs.readFileSync('private.key');
var pem = fs.readFileSync('public.pem');
var header = {...};
var payload = {...};
header.algorithm = "RS256";
var message = jsonwebtoken.sign(payload, key, header);
var decoded = jsonwebtoken.verify(message, pem, {algorithm: "RS256"});
但我没有发现任何与jjwt做在Java中相同的方式。
任何人都有一个工作示例,如何使用私钥/公钥在Java中的JWT与jjwt?
FWIW:我建议你使用jose4j ,https://bitbucket.org/b_c/jose4j/wiki/Home,JOSE/JWT的主要Java实现 –