fix: 修复 Swagger 鉴权配置
This commit is contained in:
@@ -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;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user