我目前正在使用基于 .Net Core 的 Identity Server 4 来颁发 JWT 令牌。我有一个具有中间件的 .Net Core Web API,以便在以下位置验证 JWT:Startup.cs
services.AddAuthentication("Bearer")
.AddJwtBearer("Bearer", options =>
{
options.Authority = "http://localhost:5005";
options.Audience = "api1";
});
正如我们所看到的,除了令牌服务器的位置和 api 是谁(即 'api1)之外,它并没有要求太多。显然,它在引擎盖下做了一些更复杂的事情。
我找到了一个基于Java的等效于上面的中间件,它验证了一个JWT:
String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXUyJ9.eyJpc3MiOiJhdXRoMCJ9.AbIJTDMFc7yUa5MhvcP03nJPyCPzZtQcGEp-zWfOkEE";
RSAPublicKey publicKey = //Get the key instance
RSAPrivateKey privateKey = //Get the key instance
try {
Algorithm algorithm = Algorithm.RSA256(publicKey, privateKey);
JWTVerifier verifier = JWT.require(algorithm)
.withIssuer("auth0")
.build(); //Reusable verifier instance
DecodedJWT jwt = verifier.verify(token);
} catch (JWTVerificationException exception){
//Invalid signature/claims
}
这是来自网站推荐的 这里.jwt.io
基本上,我希望能够在 Java 中实现与上面的 .Net Core 代码相同的功能,但它显然需要诸如 a 和 key 之类的东西,我不知道此时如何提供,因为 JWT 是通过请求的标头。PublicPrivate
慕的地6264312
相关分类