Friday, 15 March 2013

office365 - Get Token wih pure Javascript. Xhr Status == 0 -


मैं ADAL.JS

यह सुनिश्चित करने के लिए कि समस्या JQuery से नहीं आई है, मैंने एक xhr अनुरोध का उपयोग किया है।

मैं आसानी से कोड प्राप्त कर सकता हूं एक https://login.windows.net/common/oauth2/authorize से स्ट्रिंग अनुरोध प्राप्त करें प्रतिक्रिया में मेरे कोड स्ट्रिंग शामिल हैं, जिसे मैं / टोकन अनुरोध

में उपयोग कर सकते हैं, फिर मैं https: / / Code / POST विधि का उपयोग करके /login.windows.net/common/oauth2/token url।

बुद्धिमत्ता प्रतिक्रिया मुझे अपना JSON संरचना भेज रहा है (मेरे वाहक टोकन युक्त), लेकिन xhr वस्तु readyState == 4 और स्थिति == 0 (बजाय status == 200 , मुझे लगता है) लौट रहा है

Authorization_code '+' & amp; code = '+ code +' और client_id = '+ ग्राहक आईडी' और amp; client_secret = '+ encodeurIC घटक (' passwordDEEDADAEDEADADADA = ') +' और amp; redirect_uri = '+ एन्कोडुरिक घटक (पुनर्निर्देशित यूरी); Var xhr = नया XMLHttpRequest () xhr.open ('POST', 'https://login.windows.net/common/oauth2/token', सच है); Xhr.setRequestHeader ('सामग्री-प्रकार', 'आवेदन / x-www-form-urlencoded; charset = UTF-8'); Xhr.setRequestHeader ('स्वीकार', '* / *'); Xhr.errorerror = (ev: errorEvent) = & gt; {Console.log (ev.message); } Xhr.onreadystatechange = (e) = & gt; {Var स्थिति = ई; If (xhr.readyState == 4) {if (xhr.status> gt; = 200 & amp; amp; xhr.status & lt; 300 || xhr.status === 304) {var jsonResult = JSON.parse (xhr.responseText ); Var access_token = {टोकन: jsonResult.access_token, expires_in: नई तिथि ((नई तिथि ())। GetTime () + (jsonResult.expires_in - 300) * 1000)}; } और {// अस्वीकार (xhr); }}}; xhr.send (डेटा);

अच्छी तरह से ... यह अपेक्षाकृत कम से कम अर्थपूर्ण में काम करता है:)

लेकिन मेरा xhr अनुरोध एक xhr.readyState == 4 < कोड> और कोई xhr.status == 0 ... कोई संदेश नहीं के साथ एक त्रुटि से निपटने।

मैंने कुछ अजीब पर StackOverflow पर खोज की status == 0 व्यवहार, लेकिन वास्तव में कोई समझौता नहीं मिला ...

आशा है कि मैं समझ गया था (आप जानते हैं, फ्रांसीसी लोग .. अंग्रेजी इतनी अच्छी तरह से नहीं बोलते :))

<पी> सेबैस्टीन

एएडी ओएथ समापन बिंदु फिलहाल सीओआरएस का समर्थन नहीं करता है। हमने वर्णित वर्णों के अनुसार अप्रभावित प्रवाह का उपयोग करने वाले टोकन प्राप्त करने के लिए जावास्क्रिप्ट ऐप्स को सक्षम किया है।

इसके अलावा, कृपया ध्यान दें कि आपको ब्राउज़र-आधारित एप्लिकेशन में अपने client_secret का उपयोग नहीं करना चाहिए क्लाइंट_सेट गोपनीय ग्राहकों में उपयोग के लिए होती हैं जो कि सर्वर की ओर से चलते हैं और गुप्त की अखंडता की रक्षा कर सकते हैं यदि उपरोक्त एक ब्राउज़र में चल रहा है, तो आपके ग्राहक का रहस्य दुनिया के सामने है, जिसका गंभीर सुरक्षा निहितार्थ है।


No comments:

Post a Comment