因为openAI3.0规范显式增加Authorization的header会被忽略。
网络上有很少有讲.net 7怎么在swagger3.0指定全局Authorization的header的文章。
所以本文提供一个解决代码,代码是从GitHub上学习的。
参考的nuget包Swashbuckle.AspNetCore官方文档:
以下是实现program.cs实现代码
services.AddSwaggerGen(option =>//service是program.cs的builder.Service
{
option.AddSecurityDefinition("bearerAuth", new OpenApiSecurityScheme
{
Type = SecuritySchemeType.Http,
Scheme = "bearer",
BearerFormat = "JWT",
Description = "JWT Authorization header using the Bearer scheme."
});
option.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "bearerAuth" }
},
new string[] {}
}
});
});
在已经添加swagger的前提下在增加上述两个方法,就可以在swagger中设置全局Authorization标头了。