.NET 7 的 JWT 配置太方便了!

微软宣布 .NET 7 preview5 有一些较大的改进, 包括 JWT 身份验证的简化和自动配置。

我安装了 preview 5 尝试了新的 JWT 身份配置。如果您想把现有的项目更新到 .Net 7 preview 5, 下面是一个快速更新的命令。.

Update all Microsoft.AspNetCore.* package references to 7.0.0-preview.5.*.
Update all Microsoft.Extensions.* package references to 7.0.0-preview.5.*.

.NET 7 之前的 JWT 认证配置  

微软表示他们已经收到反馈,在 ASP.NET Core 项目中配置 JWT, 是编写 API 是最难的部分之一。它需要很多步骤,包括在启动过程中添加中间件和配置服务。

.Net 团队知道 JWT 配置在保护 API 方面的重要性,这就是为什么他们改进和简化了在 ASP.NET Core 项目中配置 JWT 身份验证的过程。

简化的 JWT 配置  

WebApplicationBuilder 添加了一个新的 Authentication 属性,然后可以直接调用 AddJwtBearer() 方法,如下

var builder = WebApplication.CreateBuilder(args);
builder.Authentication.AddJwtBearer();  
var app = builder.Build();

使用这个新属性设置 JWT 身份验证会自动添加所需的中间件,不需要其他额外的代码。

最重要的是,现在可以直接在 appsettings.json 配置 JWT,你可以非常方便地配置多个环境。

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "Authentication": {
    "DefaultScheme" : "JwtBearer",
    "Schemes": {
      "JwtBearer": {
        "Audiences": [ "http://localhost:5000", 
                      "https://localhost:5001" ],
        "ClaimsIssuer": "user-jwt-here"
      }
    }
  }
}

上面就是 .NET 7 preview 5 中简化的 JWT 配置,这很方便,这种改进可以真正的帮助开发人员节省配置项目的时间。