Question: I want to have a subpage on my website that is password protected. There should be a list of 6-digit passwords that allow access to the site. However, I don't want the user to type in a username. He should only type in one of the 6-digit passwords.

Any ideas, how I can accomplish this?

Answer: 
After some research, I eventually found the answer [here](https://github.com/domaindrivendev/Swashbuckle.AspNetCore/issues/696)

Before seeing this page, I knew that I should use `AddSecurityRequirement` after `AddSecurityDefinition` because of many samples, but it was a problem that the function parameters have changed on .NET Core 3.0.

By the way, the final answer is as below:

```cs
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[] { } 
    } 
  });
});

```
If anyone is using NSwag and has landed here after searching the solution, here is the link from the official documentation.

[NSwag Enable JWT authentication](https://github.com/RicoSuter/NSwag/wiki/AspNetCore-Middleware#enable-jwt-authentication)

PS: *I know the original question was for SwashBuckle, but Google shows this link first when searching for NSwag as well.*