在开发webapi过程中最常见的就是给接口设置访问权限,这里详细记录一下ASP.NET 3.1 Webapi中使用JWT认证过程,希望对你有帮助
开发环境
框架:asp.net 3.1
IDE:VS2019
一、创建一个.NET CORE 3.1的webapi项目,这里创建过程就不赘述了,使用VS2019一步步创建即可;
二、创建完后需要NuGet Package手动添加Microsoft.AspNetCore.Authentication.JwtBearer库。
三、为方便接口测试,我们先加入swagger接口帮助文档
(1)手动添加Swashbuckle.AspNetCore.SwaggerGen;Swashbuckle.AspNetCore.SwaggerUI;Unchase.Swashbuckle.AspNetCore.Extensions这三个库
(2)添加Swagger服务在Startup.cs的ConfigureServices加入以下代码
services.AddSwaggerGen(
options =>
{
options.SwaggerDoc("v1", new OpenApiInfo
{
Title = "CloudTemplate API",
Version = "v1"
});
options.DocInclusionPredicate((docName, description) => true);
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
Name = "Authorization",
In = ParameterLocation.Header,
Type = SecuritySchemeType.ApiKey,
Description = string.Join(Environment.NewLine + Environment.NewLine, "将 JWT 放到这里", "格式:Bearer[空格]JWT", "注意是 Bearer[空格] 开头!!!!!!!!", "例如:Bearer 12345abcdef")
});
options.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "Bearer"
}
},
Array.Empty<string>()
}
});
var xmlComments = Directory.GetFiles(AppContext.BaseDirectory, "*.xml");
foreach (var xmlComment in xmlComments)
{