Saltar al contenido

Swagger de autenticación con token de portador JWT

Presta atención porque en este escrito encontrarás la solución que buscas.

Solución:

Actualización: la especificación de Swagger ha cambiado. verifique la respuesta de @nilay a continuación para obtener la solución correcta.

Tuve el mismo problema.

2 cosas son necesarias

  1. Tienes que poner "bearer " como esto. Poner solo token no funcionará.

para que esto funcione en swagger 2.x, debe acompañar la definición de su esquema con el requisito correspondiente para indicar que el esquema es aplicable a todas las operaciones en su API:

c.AddSecurityRequirement(new Dictionary>

     "Bearer", new string[]   
);

Definición completa:

services.AddSwaggerGen(c =>
            
                c.SwaggerDoc("v1", new Info  Title = "Some API", Version = "v1" );
                c.AddSecurityDefinition("Bearer", new ApiKeyScheme()
                
                    Description = "JWT Authorization header using the Bearer scheme. Example: "Authorization: Bearer token"",
                    Name = "Authorization",
                    In = "header",
                    Type = "apiKey"
                );
                c.AddSecurityRequirement(new Dictionary>
                
                     "Bearer", new string[]   
                );
            );

También enfrento el mismo problema, pero estoy usando una nueva versión de Swagger que se basa en OpenAPI. Entonces, tengo que usar el siguiente fragmento para lo mismo.

var securityScheme = new OpenApiSecurityScheme()

    Description = "JWT Authorization header using the Bearer scheme. Example: "Authorization: Bearer token"",
    Name = "Authorization",
    In = ParameterLocation.Header,
    Type = SecuritySchemeType.Http,
    Scheme = "bearer",
    BearerFormat = "JWT"
;

var securityRequirement = new OpenApiSecurityRequirement

    
            new OpenApiSecurityScheme
            
                Reference = new OpenApiReference
                
                    Type = ReferenceType.SecurityScheme,
                    Id = "bearerAuth"
                
            ,
            new string[] 
    
;

options.AddSecurityDefinition("bearerAuth", securityScheme);
options.AddSecurityRequirement(securityRequirement);

Comentarios y calificaciones

¡Haz clic para puntuar esta entrada!
(Votos: 1 Promedio: 4)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *