在ASP.NET Core项目中,Swagger授权头不可见可能是因为Swagger UI默认隐藏了授权头。要显示授权头,可以按照以下步骤进行操作:
Startup.cs
文件中,找到ConfigureServices
方法,并添加以下代码:services.AddSwaggerGen(options =>
{
// 添加Swagger授权头
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
Type = SecuritySchemeType.Http,
Scheme = "bearer",
BearerFormat = "JWT",
In = ParameterLocation.Header,
Description = "Enter your authorization token"
});
// 对Swagger进行授权验证
options.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "Bearer"
}
},
new string[] {}
}
});
});
Configure
方法中,找到Swagger中间件的调用代码,并添加以下代码:app.UseSwagger();
app.UseSwaggerUI(options =>
{
// 显示授权头
options.DefaultModelsExpandDepth(-1);
options.SwaggerEndpoint("/swagger/v1/swagger.json", "API V1");
options.RoutePrefix = "api/docs";
options.DocumentTitle = "Your API Documentation";
options.DefaultModelRendering(ModelRendering.Example);
});
上述代码中的options.DefaultModelsExpandDepth(-1)
用于显示授权头。
希望以上解决方法对你有帮助!