我使用io.jsonwentoken生成JWT令牌:
KeyPair keyPair = Keys.keyPairFor(SignatureAlgorithm.RS256); //or RS384, RS512, PS256, PS384, PS512, ES256, ES384, ES51
PrivateKey key = keyPair.getPrivate();
Date today = new Date();
Date tomorrow = new Date(today.getTime() + (1000 * 60 * 60 * 24));
String jws = Jwts.builder()
.setIssuer("me")
.setSubject("Bob")
.setAudience("you")
.setExpiration(tomorrow) //a java.util.Date
.setNotBefore(new Date()) //a java.util.Date
.setIssuedAt(new Date()) // for example, now
.setId(UUID.randomUUID().toString()) //just an example id
.signWith(key).compact();
然后我得到了下面的JWT:
eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJtZSIsInN1YiI6IkJvYiIsImF1ZCI6InlvdSIsImV4cCI6MTU5MDAzMTIzNiwibmJmIjoxNTg5OTQ0ODM2LCJpYXQiOjE1ODk5NDQ4MzYsImp0aSI6IjM1MmMzMWRmLWYzYTYtNDQ4Ni05ZWYwLWUxMmMyZGI5N2FhOCJ9.ywWqikcqhbXkCFviR4o6YV6yRHexpDHptI0yIylByOHcEBt-YmL08t_CK7Qd9sfUJOZKU5W_5-jYODpI2XUmvGAejGfUhTE942PFnBZHRrMFYcMRrmAOfDaCsAbCNOKz5RMxOhP4ABgOC9qx9wTAg9cLQJPRHQeD0oiFx3E7PV5dwWUZePDFVkUX91MTcdyYzq9glAjZpSVIbsxsc9pok3co3wBP6FpvfYDkuQ37_l-L1ZvzwMiRSSXG-DnDbCEld7V9kTBi5ZLo5F0-vNAygGhKFejC5NR0hlXflEcBM8W9yJJbvgzaJuAZ0lU7FpUuYADNCN02GD_Gem5iDyj5zg
我将其粘贴到https://jwt.io/的Bugger上后,它说签名无效。 谁能告诉我原因?