2015-08-23 49 views
9
में WebAPI OAuth टोकन समाप्ति बिंदु को दिखाने के लिए कैसे

मैं एक नया वेब एपीआई परियोजना बना लिया है, Asp.Net पहचान और कॉन्फ़िगर OAuth इसलिए की तरह कहा:स्वैगर

OAuthOptions = new OAuthAuthorizationServerOptions 
{ 
    TokenEndpointPath = new PathString("/Token"), 
    Provider = new ApplicationOAuthProvider(PublicClientId), 
    AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"), 
    AccessTokenExpireTimeSpan = TimeSpan.FromDays(14), 
    AllowInsecureHttp = true 
}; 

यह सब ठीक काम करता है, मैं कॉल कर सकते हैं/टोकन एंडपॉइंट और एक भालू टोकन वापस प्राप्त करें।

समस्या यह है कि यह स्वैगर में खोजने योग्य नहीं है क्योंकि मुझे लगता है कि यह नियंत्रक पर नहीं है और इसलिए इसके लिए कोई XML दस्तावेज़ उत्पन्न नहीं हुआ है।

क्या किसी को भी मेरे स्वैगर दस्तावेज़ों में इस लॉगिन एंडपॉइंट को प्रदर्शित करने का तरीका पता है?

धन्यवाद।

इसके अलावा, मुझे यह कहना चाहिए था कि स्वैगर दस्तावेज मेरे सभी नियंत्रकों के साथ काम कर रहा है, यह सिर्फ इतना है कि मुझे यह एक स्पष्ट विधि याद आ रही है - लॉगिन कैसे करें।

+0

मैं नहीं जानता कि अगर यह [लिंक] (http://bitoftech.net/2014/08/25/asp-net-web-api - दस्तावेज़ीकरण-उपयोग-स्वैगर /) मदद करने जा रहा है या नहीं, लेकिन यह भी बताएगा कि अगर कोई – KhawajaAtteeq

+0

कोई नहीं है तो एक्सएमएल कैसे बनाया जाए, धन्यवाद, यह वास्तव में उन लेखों में से एक है जिन्हें मैंने स्वैगर सेट करने के लिए किया था। – Russ

+0

आप अपने टैग्स में स्वाशबकल का उल्लेख करते हैं, क्या आपने https://github.com/domaindrivendev/Swashbuckle/blob/master/README.md के "वर्णित सुरक्षा/प्राधिकरण योजनाएं" अनुभाग को देखा है? –

उत्तर

11

ApiExplorer स्वचालित रूप से आपके एंडपॉइंट के लिए कोई जानकारी उत्पन्न नहीं करेगा, इसलिए आपको टोकन एंडपॉइंट का मैन्युअल रूप से वर्णन करने के लिए कस्टम दस्तावेज़फ़िल्टर जोड़ने की आवश्यकता होगी।

वहाँ https://github.com/domaindrivendev/Swashbuckle/issues/332 पर इस बात का एक उदाहरण है:

class AuthTokenOperation : IDocumentFilter 
{ 
    public void Apply(SwaggerDocument swaggerDoc, SchemaRegistry schemaRegistry, IApiExplorer apiExplorer) 
    { 
     swaggerDoc.paths.Add("/auth/token", new PathItem 
     { 
      post = new Operation 
      { 
       tags = new List<string> { "Auth" }, 
       consumes = new List<string> 
       { 
        "application/x-www-form-urlencoded" 
       }, 
       parameters = new List<Parameter> { 
        new Parameter 
        { 
         type = "string", 
         name = "grant_type", 
         required = true, 
         @in = "formData" 
        }, 
        new Parameter 
        { 
         type = "string", 
         name = "username", 
         required = false, 
         @in = "formData" 
        }, 
        new Parameter 
        { 
         type = "string", 
         name = "password", 
         required = false, 
         @in = "formData" 
        } 
       } 
      } 
     }); 
    } 
} 

httpConfig.EnableSwagger(c => 
{ 
    c.DocumentFilter<AuthTokenOperation>(); 
}); 
+0

बिल्कुल मुझे क्या चाहिए, धन्यवाद – Russ

+1

हेल्पपेज जनरेटर के लिए सही HTML बनाने के लिए हमें इस कक्षा को कहां रखने की आवश्यकता है? – EeKay

+1

@EeKay: आपके SwaggerConfig.cs में सबसे अधिक संभावना है - यह उपरोक्त कोड उदाहरण में अंतिम भाग है (httpConfig.EnableSwagger (...)) – Efrain

संबंधित मुद्दे