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
-
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)