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實現 –