fix: 修复 Swagger 鉴权配置

This commit is contained in:
2025-12-02 14:59:15 +08:00
parent ddad5d1d4f
commit 6c0ec948a7

View File

@@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc.ApiExplorer; using Microsoft.AspNetCore.Mvc.ApiExplorer;
using System.Collections.Generic;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Microsoft.OpenApi; using Microsoft.OpenApi;
using Swashbuckle.AspNetCore.SwaggerGen; using Swashbuckle.AspNetCore.SwaggerGen;
@@ -34,6 +35,8 @@ internal sealed class ConfigureSwaggerOptions(
if (_settings.EnableAuthorization) if (_settings.EnableAuthorization)
{ {
const string bearerSchemeName = "Bearer";
var scheme = new OpenApiSecurityScheme var scheme = new OpenApiSecurityScheme
{ {
Name = "Authorization", Name = "Authorization",
@@ -44,12 +47,16 @@ internal sealed class ConfigureSwaggerOptions(
BearerFormat = "JWT" BearerFormat = "JWT"
}; };
options.SwaggerGeneratorOptions.SecuritySchemes["Bearer"] = scheme; options.AddSecurityDefinition(bearerSchemeName, scheme);
var requirement = new OpenApiSecurityRequirement options.AddSecurityRequirement(document =>
{ {
{ new OpenApiSecuritySchemeReference { Id = "Bearer" }, new List<string>() } var requirement = new OpenApiSecurityRequirement
}; {
options.SwaggerGeneratorOptions.SecurityRequirements.Add(requirement); { new OpenApiSecuritySchemeReference(bearerSchemeName, document, null), new List<string>() }
};
return requirement;
});
} }
} }
} }