Я разрабатываю веб-API с .NET Core 3.0 и хочу интегрировать его с SwashBuckle.Swagger. Он работает нормально, но когда я добавляю аутентификацию JWT, он работает не так, как я ожидал. Для этого я добавил код ниже:
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "My Web API", Version = "v1" });
c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
Name = "Authorization",
In = ParameterLocation.Header,
Type = SecuritySchemeType.ApiKey
});
});
После добавления функции AddSecurityDefinition
я вижу кнопку «Авторизовать», а когда я нажимаю на нее, я вижу форму ниже:
Затем я набираю Bearer WhatEverApiKeyIsfgdgdgdg845734987fgdhgiher635kjh
. После этого я ожидаю увидеть authorization: Bearer WhatEverApiKeyIsfgdgdgdg845734987fgdhgiher635kjh
в заголовке запроса, когда я отправляю запрос к веб-API из Swagger, но авторизация не добавляется в заголовок запроса. Я использую SwashBuckle.Swagger (5.0.0-rc3). Обратите внимание, что есть много примеров, которые отлично работают в .NET Core 2.0, но функции Swagger Swagger в последней версии изменились, поэтому я не могу использовать эти образцы.
.AddSecurityRequirement
(глобально) или.Security
(на уровне операции) - как описано в ответах на связанный вопрос.AddSecurityDefinition
одного недостаточно. - person Helen   schedule 01.10.2019