开发webApi 的时候,大多数情况会使用swagger调试接口,但是当api添加了权限认证注解的时候,就必须携带token才能访问,否则会返回401状态码提示无访问权限。 解决办法有两种: (1)使用postman等调试工具携带token调试; (2)给swagger接口文档的请求头添加token。 本文主要演示给swagger接口文档的请求头添加token。
一、修改Program.cs
将builder.Services.AddSwaggerGen() 添加以下配置
builder.Services.AddSwaggerGen(s =>
{
s.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
Description = "请输入token,格式为 Bearer xxxxxxxx(注意中间必须有空格)",
Name = "Authorization",
In = ParameterLocation.Header,
Type = SecuritySchemeType.ApiKey,
BearerFormat = "JWT",
Scheme = "Bearer"
});
s.AddSecurityRequirement(new OpenApiSecurityRequirement {
{
new OpenApiSecurityScheme{
Reference =new OpenApiReference{
Type = ReferenceType.SecurityScheme,
Id ="Bearer"
}
},new string[]{ }
}
});
});
如图 
二、启动api,添加token
如图操作  如果需要更换token,点击Logout,重复上图步骤 
三、请求api
(1)如图请求成功  (2)点击Logout之后,再次请求api,如图提示没有权限 
|