.NET6 Swagger右上角的Authorize权限按钮不显示,如何开启
首先 .NET6 是自带Swagger的,无需手动引入,但是有个问题,最初的Swagger是没有开启Authorize按钮的。
![](https://pic4.zhimg.com/80/v2-920f3603a8108c14fda2108dfafe3633_720w.webp)
最初的模样
如何把它显示出来并将token信息加入header中呢?
只需在program.cs页面中加入如下代码:
builder.Services.AddSwaggerGen(c =>
{
var security = new OpenApiSecurityRequirement()
{
{ new OpenApiSecurityScheme
{
Reference = new OpenApiReference()
{
Id = "Bearer",
Type = ReferenceType.SecurityScheme
}
}, Array.Empty<string>() }
};
c.AddSecurityRequirement(security);//添加一个必须的全局安全信息,和AddSecurityDefinition方法指定的方案名称要一致,这里是Bearer。
c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
Description = "JWT授权(数据将在请求头中进行传输) 参数结构: \"Authorization: Bearer {token}\"",
Name = "Authorization",//jwt默认的参数名称
In = ParameterLocation.Header,//jwt默认存放Authorization信息的位置(请求头中)
Type = SecuritySchemeType.ApiKey
});
});
再启动项目,Authorize按钮就出线了
![](https://pic4.zhimg.com/80/v2-d26aa4c1b27d7d97936238daf78c9193_720w.webp)
image.png
将token以 Bearer[空格]token 的形式写入按钮中,再访问接口,token信息就会被加载http请求的header中
![](https://pic2.zhimg.com/80/v2-5d5e7d0c6752ce18b7863bc964b7537d_720w.webp)
![](https://pic3.zhimg.com/80/v2-80e3d6067bd382a567f4b52f2d7e0bd6_720w.webp)
一份耕耘,一份收获,付出就有回报永不遭遇过失败,因我所碰到的都是暂时的挫折