首页 > 解决方案 > .net core 3 AddSwaggerGen (SWAGGER UI) with security, Missing the string: "Bearer" in the authorization header

问题描述

我在 .net core3 中有以下招摇配置

services.AddSwaggerGen(c =>
{
   c.SwaggerDoc("v1", new OpenApiInfo { 
      Title = "My API", 
      Version = "v1" 
   });

  c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme {
     In = ParameterLocation.Header, 
     Description = "Please insert JWT with Bearer into field",
     Name = "Authorization",
          Type = SecuritySchemeType.ApiKey 
     });

     c.AddSecurityRequirement(new OpenApiSecurityRequirement {
     { 
        new OpenApiSecurityScheme 
        { 
            Reference = new OpenApiReference 
            { 
              Type = ReferenceType.SecurityScheme,
              Id = "Bearer" 
            } 
        },
        new string[] { } 
      } 
     })
 });

问题是发送了 Authorization 标头,但开头没有 Bearer 这个词:
实际:

Authorization: eyJhbGciOiJIUzI...

预期的:

Authorization: Bearer eyJhbGciOiJIUzI...

标签: swagger-ui.net-core-3.0

解决方案


推荐阅读