43 lines
1.4 KiB
C#
43 lines
1.4 KiB
C#
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.OpenApi.Models;
|
|
|
|
namespace IM.InitCommon
|
|
{
|
|
public static class SwaggerGenExtension
|
|
{
|
|
public static IServiceCollection AddSwaggerGenOpt(this IServiceCollection services)
|
|
{
|
|
return services.AddSwaggerGen(options =>
|
|
{
|
|
// 1. 定义安全定义 (Security Definition)
|
|
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
|
|
{
|
|
Name = "Authorization",
|
|
Type = SecuritySchemeType.Http,
|
|
Scheme = "bearer",
|
|
BearerFormat = "JWT",
|
|
In = ParameterLocation.Header,
|
|
Description = "请输入 JWT Token,不需要输入 'Bearer ' 前缀,系统会自动添加。"
|
|
});
|
|
|
|
// 2. 开启全局安全要求 (Security Requirement)
|
|
// 这样 Swagger UI 所有的接口都会出现锁头图标
|
|
options.AddSecurityRequirement(new OpenApiSecurityRequirement
|
|
{
|
|
{
|
|
new OpenApiSecurityScheme
|
|
{
|
|
Reference = new OpenApiReference
|
|
{
|
|
Type = ReferenceType.SecurityScheme,
|
|
Id = "Bearer"
|
|
}
|
|
},
|
|
new string[] {}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
}
|