使用JWT Java library并使用 RS256 算法生成令牌,我总是使用jwt.io调试器获得无效签名。这是我的示例代码,我试图让它尽可能简单地从我当前的项目开始:
// Create a legitimate RSA public and private key pair:
KeyPair kp = RsaProvider.generateKeyPair();
PublicKey publicKey = kp.getPublic();
PrivateKey privateKey = kp.getPrivate();
String jwt = Jwts.builder().setSubject("Joe").signWith(SignatureAlgorithm.RS256, privateKey).compact();
此代码的灵感来自测试类here。
知道我可能缺少什么吗?
答案 0 :(得分:1)
jwt.io调试器期望您提供与用于签署以公钥文件(PKCS#8)格式编码的令牌的私钥相关联的公钥。
确保您使用该格式指定它,示例如下:
-----BEGIN PUBLIC KEY-----
BASE64 DATA
-----END PUBLIC KEY-----