मैं .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
अनुरोध के हेडर में देखने की उम्मीद करता हूं , जब मैं स्वैगर से वेब एप को एक अनुरोध भेजता हूं। लेकिन प्राधिकरण अनुरोध शीर्षलेख में नहीं जोड़ा गया है। मैं SwashBuckle.Swagger (5.0.0-rc3) का उपयोग कर रहा हूं। कृपया ध्यान दें कि कई नमूने हैं जो .net core 2.0 पर ठीक काम करते हैं, लेकिन Swashbuckle swagger फ़ंक्शन नवीनतम संस्करण में बदल गए हैं, इसलिए मैं उस नमूनों का उपयोग नहीं कर सकता।
.AddSecurityRequirement
(विश्व स्तर पर) या .Security
(ऑपरेशन के स्तर पर) - जैसा कि जुड़े हुए प्रश्न के उत्तर में बताया गया है। AddSecurityDefinition
अकेला पर्याप्त नहीं है।