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[] {} } }); }); } } }