.NET6 Swagger右上角的Authorize权限按钮不显示,如何开启

首先 .NET6 是自带Swagger的,无需手动引入,但是有个问题,最初的Swagger是没有开启Authorize按钮的。

 


最初的模样

如何把它显示出来并将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按钮就出线了

 


image.png

 

将token以 Bearer[空格]token 的形式写入按钮中,再访问接口,token信息就会被加载http请求的header中

 

 

 

 

 

posted @ 2024-07-09 16:49  星畔  阅读(4)  评论(0编辑  收藏  举报