.NET Core 6 Web API中Swagger未显示Authorize图标求助
.NET Core 6 Web API 配置Swagger授权功能
要让Swagger支持接口授权测试,按以下步骤配置:
1. 安装依赖包
安装Swagger授权扩展包,可通过.NET CLI执行命令:
dotnet add package Swashbuckle.AspNetCore.Filters
2. 配置Swagger服务(Program.cs)
在AddSwaggerGen中添加JWT认证的安全定义与全局授权要求:
builder.Services.AddSwaggerGen(c => { // 定义JWT认证方案 c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Description = "JWT授权格式:Bearer {token}", Name = "Authorization", In = ParameterLocation.Header, Type = SecuritySchemeType.Http, Scheme = "Bearer" }); // 为所有接口添加授权要求 c.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }, Array.Empty<string>() } }); });
3. 启用Swagger UI授权按钮
在UseSwaggerUI中开启授权持久化,让UI显示授权按钮:
app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "你的API名称 V1"); // 开启授权状态持久化,刷新页面后无需重新授权 c.EnablePersistAuthorization(); });
4. 测试授权
启动项目打开Swagger页面,会看到新增的Authorize按钮。点击后输入Bearer 你的JWT令牌,确认后即可测试需要授权的接口。
内容的提问来源于stack exchange,提问作者GettingStarted
相关产品推荐
相关产品推荐

