.Net Core 中的 JWT 验证

JWT Validation in .Net Core

几天来我一直在为这个问题苦苦挣扎...这里似乎有很多类似的问题,但我找不到一个涵盖这个确切场景的问题。

我有一个节点服务正在创建一个 jsonwebtoken NPM 包 (RS256)。任何其他节点服务都能够验证 UI 提供的令牌并读取声明 _ 也可以在 jwt.io.

上验证

但是我需要在解决方案中添加一个 .net 核心 api 但我不能简单地让它工作 - 我觉得我已经尝试了上百万种不同的设置组合 api 中间件,但显然我遗漏了一些东西,我找不到任何关于正确执行此操作的方法的文档 - 显然我也想阅读声明,但现在,在我拔掉头发之前,我只想验证令牌并点击控制器。

配置 JWT 承载身份验证(以及来自 Microsoft.AspNetCore.Authentication.JwtBearer NuGet 包的 token validation options) on DI using AddJwtBearer 扩展方法:

// The below code used to be in Startup.ConfigureServices method 
// before the minimal API with all stuff in Program.cs file has been introduced 

builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
    .AddJwtBearer(options =>
    {
        options.TokenValidationParameters = new TokenValidationParameters
        {
            ValidateAudience = false, 
            ValidateIssuer = true,
            ... = ,
        };
        options.Authority = <settings-your-authority>;
        options. ect..
    });

...

// Use configured JWT auth (used to be in Startup.Configure method) 

var app = builder.Build();
...
app.UseAuthentication();
...
app.Run();

并在此处查看如何