ฉันกำลังพัฒนา Web 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
ในส่วนหัวของคำขอเมื่อฉันส่งคำขอไปยัง Web Api จาก Swagger แต่จะไม่เพิ่มการให้สิทธิ์ลงในส่วนหัวคำขอ ฉันใช้ SwashBuckle.Swagger (5.0.0-rc3) โปรดทราบว่ามีตัวอย่างจำนวนมากที่ทำงานได้ดีบน. net core 2.0 แต่ฟังก์ชั่น Swashbuckle มีการเปลี่ยนแปลงในเวอร์ชั่นล่าสุดดังนั้นฉันจึงไม่สามารถใช้ตัวอย่างนั้นได้
.AddSecurityRequirement
(ทั่วโลก) หรือ.Security
(ในระดับปฏิบัติการ) - ตามที่อธิบายไว้ในคำตอบของคำถามที่เชื่อมโยง AddSecurityDefinition
เพียงอย่างเดียวไม่เพียงพอ