यह एक वैचारिक प्रश्न है।
मेरे पास एक क्लाइंट (मोबाइल) एप्लिकेशन है जिसे एक Restful वेब सेवा के खिलाफ लॉगिन कार्रवाई का समर्थन करने की आवश्यकता है। क्योंकि वेब सेवा रेस्टफुल है, यह क्लाइंट को उपयोगकर्ता से उपयोगकर्ता नाम / पासवर्ड को स्वीकार करने के लिए है, सेवा के साथ उस उपयोगकर्ता नाम / पासवर्ड की पुष्टि करता है, और फिर बाद के सभी अनुरोधों के साथ उस उपयोगकर्ता नाम / पासवर्ड को भेजने के लिए याद रखता है।
इस वेब सेवा में अन्य सभी प्रतिक्रियाएं JSON प्रारूप में प्रदान की जाती हैं।
सवाल यह है कि जब मैं वेब सेवा को केवल यह पता लगाने के लिए बताता हूं कि क्या दिया गया उपयोगकर्ता नाम / पासवर्ड वैध है, तो क्या वेब सेवा को हमेशा JSON डेटा का जवाब देना चाहिए जो मुझे इसका सफल या असफल बता रहा है, या क्या यह HTTP 200 को अच्छे क्रेडेंशियल और HTTP पर वापस करना चाहिए 401 खराब साख पर।
मेरे पूछने का कारण यह है कि कुछ अन्य विश्वसनीय सेवाएं खराब क्रेडेंशियल के लिए 401 का उपयोग करती हैं, तब भी जब आप पूछ रहे हैं कि क्या क्रेडेंशियल मान्य हैं। हालाँकि, 401 प्रतिक्रियाओं के बारे में मेरी समझ यह है कि वे एक ऐसे संसाधन का प्रतिनिधित्व करते हैं जिसे आप मान्य क्रेडेंशियल के बिना उपयोग करने वाले नहीं हैं। लेकिन लॉगिन संसाधन SHOULD किसी के लिए भी सुलभ हो सकता है क्योंकि लॉगिन संसाधन का संपूर्ण उद्देश्य आपको यह बताना है कि क्या आपकी क्रेडेंशियल मान्य हैं।
एक और रास्ता रखो, यह मुझे लगता है कि एक अनुरोध की तरह है:
myservice.com/this/is/a/user/action
खराब क्रेडेंशियल प्रदान किए जाने पर 401 को वापस करना चाहिए। लेकिन एक अनुरोध की तरह:
myservice.com/are/these/credentials/valid
401 को कभी वापस नहीं करना चाहिए क्योंकि वह विशेष URL (अनुरोध) वैध क्रेडेंशियल के साथ या उसके बिना अधिकृत है।
मैं इस पर कुछ न्यायसंगत राय सुनना चाहता हूं। इसे संभालने का मानक तरीका क्या है, और क्या यह तार्किक रूप से निपटने का मानक तरीका है?