Empty authorization header on requests for Swashbuckle.AspNetCore

前端 未结 2 472
无人共我
无人共我 2021-01-28 18:24

Currently having an issue with authorization headers in swashbuckle for .net core The first line of code on every endpoint is:

string auth = Request.Headers[\"Au         


        
相关标签:
2条回答
  • 2021-01-28 18:42

    The problem here is that the name in your security definition ("Bearer") does not match the name added to your security requirement ("Authorization"). For background context, there used to be a bug in SwashBuckle that meant that it enforced authorization without the SecurityRequirement defined so many found that it suddenly stopped working for them. The Requirement definition is a bit clunky and leads to issues like these.

    If you change the SecurityRequirement to match the code below it should work:

     services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new Info
            {
                Version = "v1",
                Title = "Employee Navigator",
                Description = "Authorization Key: Z29vZEtleQ==",
            });
            c.AddSecurityDefinition("Bearer", new ApiKeyScheme
            {
                Name = "Authorization",
                In = "header",
                Type = "apiKey",
                Description = "Authorization Key: Z29vZEtleQ=="
            });
            c.AddSecurityRequirement(new Dictionary<string, IEnumerable<string>>
            {
                { "Bearer", new[] { "readAccess", "writeAccess" } }
            });
    
        });
    
    0 讨论(0)
  • 2021-01-28 18:42

    Found the answer in case anyone has this issue:

    My solution can be found here: https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/696

    more info on the topic can be found here: https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/603

    0 讨论(0)
提交回复
热议问题