Net Core 3.0 ile bazı Web Api geliştiriyorum ve SwashBuckle.Swagger ile entegre etmek istiyorum. İyi çalışıyor, ancak JWT kimlik doğrulaması eklediğimde, beklediğim gibi çalışmıyor. Bunu yapmak için aşağıdaki kodu ekledim:
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
İşlev ekledikten sonra Yetkilendir düğmesini görebilirim ve tıkladığımda aşağıdaki formu görüyorum:
Sonra yazıyorum Bearer WhatEverApiKeyIsfgdgdgdg845734987fgdhgiher635kjh
, Bunu yaptıktan sonra authorization: Bearer WhatEverApiKeyIsfgdgdgdg845734987fgdhgiher635kjh
Swagger'den Web Api'ye bir istek gönderdiğimde, isteğin başlığında görmeyi bekliyorum . Ancak istek üstbilgisine yetkilendirme eklenmez. SwashBuckle.Swagger (5.0.0-rc3) kullanıyorum. Lütfen .net core 2.0 üzerinde iyi çalışan birçok örnek olduğunu unutmayın, ancak Swashbuckle swagger işlevleri en son sürümde değişti, bu yüzden bu örnekleri kullanamıyorum.
.AddSecurityRequirement
(küresel olarak) veya .Security
(çalışma seviyesinde) eklemektir . AddSecurityDefinition
tek başına yeterli değildir.