一.安装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中的其他方法,就可以正常运行