उदाहरण के लिए, जब उपयोगकर्ता के पास लॉगिन होता है। अब यह कहने दें कि उपयोगकर्ता एक मंच विषय बनाना चाहता है, मुझे कैसे पता चलेगा कि उपयोगकर्ता पहले से लॉग इन है?
इसके बारे में सोचें - कुछ हैंडशेक होना चाहिए जो आपके "क्रिएट फोरम" एपीआई को बताता है कि यह वर्तमान अनुरोध एक प्रमाणीकृत उपयोगकर्ता से है। चूंकि REST API आमतौर पर स्टेटलेस होते हैं, इसलिए राज्य को कहीं न कहीं रहना चाहिए । REST API का उपभोग करने वाला आपका ग्राहक उस स्थिति को बनाए रखने के लिए ज़िम्मेदार है। आमतौर पर, यह कुछ टोकन के रूप में होता है जो उपयोगकर्ता द्वारा लॉग इन किए जाने के बाद से आसपास हो जाता है। यदि टोकन अच्छा है, तो आपका अनुरोध अच्छा है।
जांचें कि अमेज़ॅन एडब्ल्यूएस प्रमाणीकरण कैसे करता है। यह एक एपीआई से दूसरे एपीआई के आसपास "हिरन गुजरने" का एक आदर्श उदाहरण है।
* मैंने अपने पिछले उत्तर में कुछ व्यावहारिक प्रतिक्रिया जोड़ने के बारे में सोचा। अपाचे शेरो (या किसी भी प्रमाणीकरण / प्राधिकरण पुस्तकालय) का प्रयास करें। नीचे पंक्ति, कोशिश करें और कस्टम कोडिंग से बचें। एक बार जब आप अपने पसंदीदा पुस्तकालय को एकीकृत कर लेते हैं (मैं अपाचे शिरो का उपयोग करता हूं, तो आप निम्नलिखित कर सकते हैं:
- एक लॉगिन / लॉगआउट एपीआई बनाएं जैसे:
/api/v1/login
औरapi/v1/logout
- इन लॉगिन और लॉगआउट एपीआई में, अपने उपयोगकर्ता स्टोर के साथ प्रमाणीकरण करें
- परिणाम एक टोकन है (आमतौर पर,
JSESSIONID
) जो क्लाइंट को भेजा जाता है (वेब, मोबाइल, जो भी हो)
- इस बिंदु से, आपके क्लाइंट द्वारा की गई सभी बाद की कॉल में यह टोकन शामिल होगा
- मान लीजिए कि आपका अगला कॉल API नाम से बना है
/api/v1/findUser
- यह एपीआई कोड पहली बार टोकन के लिए जांच करेगा ("क्या यह उपयोगकर्ता प्रमाणित है?"
- यदि उत्तर NO के रूप में वापस आता है, तो आप क्लाइंट पर HTTP 401 स्थिति वापस लाते हैं। उन्हें इसे संभालने दो।
- यदि उत्तर हां है, तो अनुरोधित उपयोगकर्ता को वापस करने के लिए आगे बढ़ें
बस इतना ही। उम्मीद है की यह मदद करेगा।