我创建了一个在.net6上运行的asp.net core空项目。当我尝试在 swagger 中启用身份验证时遇到一个问题。 Swagger UI 按预期运行,唯一的问题是每当我单击 swagger UI 上的“授权”绿色按钮时,它就会弹出,但显示“未知安全定义类型”,并给我两个选项“授权”和“关闭”。它不会显示在可用授权 Bearer(http,Bearer) 下,并允许我输入 jwt 值。我遇到了这个article这涉及到持票人身份验证,但对我来说没有太大帮助。我是否在 .AddSwaggerGen()
中遗漏了某些内容?
builder.Services.AddAuthorization();
builder.Services.AddSwaggerGen(options =>
{
options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
Scheme = "Bearer",
BearerFormat = "JWT",
In = ParameterLocation.Header,
Name = "Authorization",
Description = "Bearer Authentication with JWT Token",
Type = SecuritySchemeType.Http
});
options.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Id = "Bearer",
Type = ReferenceType.SecurityScheme
}
},
new List<string>()
}
});
});
var app = builder.Build();
app.UseAuthorization();
app.UseAuthentication();
......
最佳答案
我认为Scheme
应该是“bearer”
(小写b)
Scheme = "bearer",
关于asp.net-core - 在 swagger 中启用身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71622325/