添加Nuget:

JWT Nuget引用包名:

Microsoft.AspNetCore.Authentication.JwtBearer

注意版本和.net Core版本的兼容

在appsettings.json中添加JWT的配置参数

"Jwt": {
    "Secret": "your-256-bit-secret",
    "Iss": "https://localhost:50000",
    "Aud": "api"
  }

在Startup.cs中的ConfigureServices方法中添加JWT的授权认证

#region JWT配置
var jwtConfig = Configuration.GetSection("Jwt");
//生成密钥
var symmetricKeyAsBase64 = jwtConfig.GetValue<string>("Secret");
var keyByteArray = Encoding.ASCII.GetBytes(symmetricKeyAsBase64);
var signingKey = new SymmetricSecurityKey(keyByteArray);
//认证参数
services.AddAuthentication("Bearer")
	.AddJwtBearer(o =>
	{
		o.TokenValidationParameters = new TokenValidationParameters
		{
			ValidateIssuerSigningKey = true,//是否验证签名,不验证的画可以篡改数据,不安全
			IssuerSigningKey = signingKey,//解密的密钥
			ValidateIssuer = true,//是否验证发行人,就是验证载荷中的Iss是否对应ValidIssuer参数
			ValidIssuer = jwtConfig.GetValue<string>("Iss"),//发行人
			ValidateAudience = true,//是否验证订阅人,就是验证载荷中的Aud是否对应ValidAudience参数
			ValidAudience = jwtConfig.GetValue<string>("Aud"),//订阅人
			ValidateLifetime = true,//是否验证过期时间,过期了就拒绝访问
			ClockSkew = TimeSpan.Zero,//这个是缓冲过期时间,也就是说,即使我们配置了过期时间,这里也要考虑进去,过期时间+缓冲,默认好像是7分钟,你可以直接设置为0
			RequireExpirationTime = true,
		};
	});
#endregion

在Startup.cs中的Configure方法中添加 app.UseAuthentication() 和 app.UseAuthorization() 注意位置

app.UseAuthentication();
app.UseAuthorization();

需要放置的位置:

(adsbygoogle = window.adsbygoogle || []).push({});