Saya mengembangkan beberapa Web Api dengan .Net core 3.0 dan ingin mengintegrasikannya dengan SwashBuckle.Swagger. Ini berfungsi dengan baik, tetapi ketika saya menambahkan otentikasi JWT, itu tidak berfungsi seperti yang saya harapkan. Untuk melakukan itu, saya menambahkan kode di bawah ini:
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
});
});
Setelah menambahkan AddSecurityDefinitionfungsi, saya dapat melihat tombol Otorisasi dan ketika saya mengkliknya, saya melihat formulir di bawah ini:

Kemudian saya mengetik Bearer WhatEverApiKeyIsfgdgdgdg845734987fgdhgiher635kjh, Setelah melakukan itu saya berharap melihat authorization: Bearer WhatEverApiKeyIsfgdgdgdg845734987fgdhgiher635kjhdi header permintaan, ketika saya mengirim permintaan ke Web Api dari Swagger. Tetapi otorisasi tidak ditambahkan ke header permintaan. Saya menggunakan SwashBuckle.Swagger (5.0.0-rc3). Harap dicatat ada banyak sampel yang berfungsi dengan baik pada .net core 2.0, tetapi fungsi swashbuckle swagger telah berubah pada versi terbaru sehingga saya tidak dapat menggunakan sampel itu.
.AddSecurityRequirement(secara global) atau .Security(pada tingkat operasi) - sebagaimana dijelaskan dalam jawaban untuk pertanyaan terkait. AddSecurityDefinitionsendiri tidak cukup.

