添加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({});
来源:https://www.02405.com/archives/7309