में प्रमाणीकरण विफलता सिग्नलिंग मैं एक छोटा सा एप्लीकेशन लिख रहा हूं जो एक साधारण REST-ish HTTP API का खुलासा करता है। मैं प्राधिकरण की कमी के कारण विफलता को सिग्नल करने का निर्णय लेने की कोशिश कर रहा हूं।एक विश्वसनीय API
ऐप में प्रमाणीकरण के लिए कोई एपीआई नहीं है, लेकिन इसके बजाय क्लाइंट द्वारा किसी अन्य सेवा के माध्यम से प्राप्त सत्र टोकन युक्त कुकी की उपस्थिति पर निर्भर करता है। ऐप सत्र की पुष्टि करता है और ऐप-विशिष्ट प्रमाणीकरण करने के लिए सत्यापन प्रक्रिया के माध्यम से प्राप्त पहचान का उपयोग करता है। क्लाइंट के लिए सीधे इस ऐप को प्रमाणीकृत करने का कोई तरीका नहीं है।
मेरी समस्या यह है कि अनधिकृत अनुरोधों को अस्वीकार करने के लिए स्पष्ट HTTP स्थिति कोड, "401 अनधिकृत", "WWW-प्रमाणीकरण" शीर्षलेख के संदर्भ में निर्दिष्ट है। rfc2616 sec 10.4.2 देखें।
प्रतिक्रिया एक WWW-प्रमाणित शीर्ष लेख क्षेत्र (अनुभाग 14.47) एक चुनौती अनुरोध किया गया संसाधन के लिए लागू युक्त अवश्य शामिल करें।
मुझे विश्वास नहीं है कि यह एक असामान्य समस्या है। क्या सामान्य उपयोगों को शामिल करने के लिए 401 को अधिभारित करना आम है? ऑथ/ई संवादों को पॉप अप करने वाले ब्राउज़र के बारे में क्या (जो संयोग से मैंने अपने परीक्षण में नहीं देखा है, तो हो सकता है कि यह POSTs के लिए न हो)?
नीचे पंक्ति: क्या इस संदर्भ में 401 का उपयोग करना ठीक है, या क्या कोई बेहतर समाधान है? इस तरह
यदि आप कुकी का उपयोग कर रहे हैं तो यह एक विश्वसनीय API नहीं है। आरईएसटी सेवाएं परिभाषा के आधार पर स्टेटलेस हैं। –
उचित बिंदु - मैंने अपना विवरण रीस्टफुल के बजाय, REST-ish में बदल दिया। तो क्या आपको लगता है कि उत्तर या तो प्रति-अनुरोध प्रमाणीकरण को सही ढंग से कार्यान्वित करने के लिए है, या पुन: प्रयास पर मेरे प्रयास को छोड़ दें? – j0ni
कहना मुश्किल है, यह आपके आवेदन पर निर्भर करता है। आरईएसटी दृष्टिकोण के कुछ फायदे हैं। यदि आप सर्वर-साइड सत्र का उपयोग करना जारी रखना चाहते हैं, तो मैं 403 वापस कर दूंगा क्योंकि tvanfosson ने कहा था। –