在Abp.IO 框架上面加入JWT验证
一.安装JWT所需的NuGet 包

二.在WebModule.cs下配置

在这个类库中 找到ConfigureAuthentication 这个方法


//授权认证(使用JWT)
context.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(o =>
{
// 私钥
var secretByte = Encoding.UTF8.GetBytes("kdsfldsflkdslkflkdsflkdslfdslkflk");
o.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters
{
// 验证发布者
ValidateIssuer = true,
// 发布者信息
ValidIssuer = "www.cch",
// 验证接收者
ValidateAudience = true,
// 接收者
ValidAudience = "www.cch",
// 验证是否过期
ValidateLifetime = true,
// 验证私钥
IssuerSigningKey = new SymmetricSecurityKey(secretByte)
};
});
//配置Swagger
context.Services.AddSwaggerGen(o =>
{
// 显示 授权信息
o.AddSecurityDefinition("Bearer", new Microsoft.OpenApi.Models.OpenApiSecurityScheme()
{
Description = "添加JWT授权Token:Bearer Token值",
Name = "Authorization",
In = Microsoft.OpenApi.Models.ParameterLocation.Header,
Type = Microsoft.OpenApi.Models.SecuritySchemeType.ApiKey,
BearerFormat = "JWT",
Scheme = "Bearer"
});
o.AddSecurityRequirement(new Microsoft.OpenApi.Models.OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "Bearer"
}
},
new string[]
{
}
}
});
});
在下面OnApplicationInitialization这个方法中 加入鉴权

//鉴权
app.UseAuthentication();
app.UseAuthorization();
三.在实现类库中加上授权认证[Authorize]

四.在实现里面写一个获取到Token值的方法,获取Token值的方法设置为匿名可访问 [AllowAnonymous]

public string CreateTokenString()
{
//私钥
var secretByte = Encoding.UTF8.GetBytes("kdsfldsflkdslkflkdsflkdslfdslkflk");
// 非对称加密
var signingKey = new SymmetricSecurityKey(secretByte);
// 使用256 生成数字签名
var signingCredentials = new SigningCredentials(signingKey, SecurityAlgorithms.HmacSha256);
// 生成Token
var token = new JwtSecurityToken(
issuer: "www.cch",
audience: "www.cch",
expires: DateTime.Now.AddDays(1), // 一天后过期
signingCredentials: signingCredentials
);
// 生成token 字符串
var strToken = new JwtSecurityTokenHandler().WriteToken(token);
return strToken;
}
五.在用户登录的方法中,登录成功之后要生成JWT的Token值,返回到前端

六.在Swagger中调试
1.运行登录方法,登录成功后,复制生成出来的JWT token字符串
2.点击右上角的Authorize按钮,然后在文本框中输入:Berarer token值,格式如:Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2OTg0ODI1NzAsImlzcyI6Ind3dy5jY2giLCJhdWQiOiJ3d3cuY2NoIn0.YV_LGJ6PyVN81B1P4dtcWEBV0Pjh9ZMg35IOtAwCozI
然后点击'Authorize'
3.之后运行Swagger中的其他方法,就可以正常运行

浙公网安备 33010602011771号