我正在使用Java生成JWT令牌,但是由于某些原因,我的有效载荷始终为空。我在Spring期间使用 com.nimbusds.jose 库。有我的设置:
JWEHeader header = new JWEHeader(JWEAlgorithm.DIR, EncryptionMethod.A128CBC_HS256);
JWTClaimsSet claims = new JWTClaimsSet.Builder()
.claim("username", "myuser")
.claim("id", 1)
.build();
Payload payload = new Payload(claims.toJSONObject());
JWEObject jweObject = new JWEObject(header, payload);
JWEEncrypter encrypter = new DirectEncrypter("my_jwt_secret"); // not this one of course
jweObject.encrypt(encrypter);
所以这里没有什么花哨的地方,只是一个简单的设置,但是所有生成的令牌都有一个空的有效负载,就像这样:
eyJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiZGlyIn0..mHJC0QrvJlcL4R0fRoQzvA.xIrPqpnz5XVSyF20FBe11A.EFZ9ZWCs6uXvvj341EaRig
请注意令牌中间的2个点(In0 .. mHJ),有效负载中没有内容。
已经尝试了一些更改,例如仅使用字符串(而不是int或longs)但结果相同。 有人吗?