2015-12-29 17 views
5

के साथ वेब एपीआई में टोकन के लिए अतिरिक्त पैरामीटर्स भेजना मुझे एंगुलरजेएस में लिखा गया एक एप्लीकेशन मिला है जो ओथ 2 के माध्यम से प्रमाणीकरण के लिए एक वेब एपीआई से संपर्क करता है। सब कुछ उस मूल टुकड़े के साथ अच्छी तरह से काम कर रहा है, लेकिन मुझे पास करने की आवश्यकता है लॉगिन (क्लाइंट आईडी) का मूल्यांकन करने के लिए अतिरिक्त पैरामीटर और सेटअप मुझे याद रखें कार्यक्षमता टाइप करें (याद रखें)।ओएथ 2 और एंगुलरजेएस

कोणीय ओर से यह कुछ इस तरह दिखेगा:

var data = "grant_type=password&username=" + form.username + "&password=" + form.password + "&clientID=" + clientID + "&remember=" + form.remember; 

    var deferred = $q.defer(); 

    $http.post(serviceBase + 'token', data, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).success(function (response) { 

एक बार मैं Startup.cs और SimpleAuthorizationServerProvider.cs के माध्यम से टोकन प्रसंस्करण कर रहा हूँ उन मूल्यों पर कब्जा करने के लिए सबसे अच्छा तरीका के रूप में किसी भी विचार? धन्यवाद

उत्तर

8

GrantResourceOwnerCredentials का उपयोग करते समय, आप OAuthGrantResourceOwnerCredentialsContext से OWIN अनुरोध पुनर्प्राप्त कर सकते हैं और ReadFormAsync() पर कॉल करके आपको आवश्यक कस्टम पैरामीटर निकाल सकते हैं।

public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) 
{ 
    var form = await context.Request.ReadFormAsync(); 

    if (string.Equals(form["remember"], "true", StringComparison.OrdinalIgnoreCase)) 
    { 
     // Add custom logic to handle the "remember me" case. 
    } 
} 

कहा जाता है कि कस्टम (यानी गैर-मानक) पैरामीटर आमतौर पर निराश होते हैं, विशेष रूप से यदि वे अनिवार्य हैं। ध्यान दें कि आपको कस्टम clientID पैरामीटर का उपयोग करने की आवश्यकता नहीं है, क्योंकि पहले से ही मानक समतुल्य है: client_id

+0

यह एक आकर्षण की तरह काम करता था। सहायता के लिए धन्यवाद। मैंने क्लाइंट_आईडी को नजरअंदाज कर दिया ताकि जानना अच्छा हो। तो यदि गैर मानक मानकों को जोड़ना निराश हो जाता है, तो आप मुझे उस सत्य/गलत मान को पार करने की अनुशंसा कैसे करेंगे जो मुझे कार्यक्षमता याद रखे? –

+0

आईएमएचओ, एक "मुझे याद रखें" चीज टोकन की अद्भुत दुनिया में ज्यादा समझ नहीं लेती है। यह वास्तव में क्या करता है? – Pinpoint

+0

मैं वास्तव में मुझे याद रखने की सुविधा का बड़ा प्रशंसक नहीं हूं, लेकिन मेरा ग्राहक इसे चाहता है। असल में, टोकन डिफ़ॉल्ट रूप से 24 घंटे के बाद समाप्त हो जाता है और याद रखें कि मुझे समाप्ति मूल्य 30 दिनों तक बढ़ा देता है। –

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