मुझे लगता है कि यह बहुत देर हो चुकी है, लेकिन मुझे लगा कि मैं कॉनर के जवाब पर विस्तार कर सकता हूं और चर्चा में थोड़ा और जोड़ सकता हूं।
क्या कोई मुझे बता सकता है कि कुकी आधारित प्रमाणीकरण कैसे काम करता है? मैंने कभी भी प्रमाणीकरण या कुकीज़ से संबंधित कुछ भी नहीं किया है। ब्राउज़र को क्या करने की आवश्यकता है? सर्वर को क्या करने की आवश्यकता है? किस क्रम में? हम चीजों को कैसे सुरक्षित रखते हैं?
चरण 1: क्लाइंट> साइन अप करना
कुछ और करने से पहले, उपयोगकर्ता को साइन अप करना होगा। क्लाइंट अपने HTTP यूजरनेम और पासवर्ड वाले HTTP अनुरोध को पोस्ट करता है।
चरण 2: सर्वर> हैंडलिंग साइन अप
सर्वर यह अनुरोध प्राप्त करता है और आपके डेटाबेस में उपयोगकर्ता नाम और पासवर्ड को संग्रहीत करने से पहले पासवर्ड को हैश करता है। इस तरह, यदि कोई आपके डेटाबेस तक पहुँच प्राप्त करता है, तो वे आपके उपयोगकर्ताओं के वास्तविक पासवर्ड नहीं देखेंगे।
चरण 3: क्लाइंट> उपयोगकर्ता लॉगिन
अब आपका उपयोगकर्ता लॉग इन करता है। वह अपना उपयोगकर्ता नाम / पासवर्ड प्रदान करता है और फिर से, यह सर्वर के लिए HTTP अनुरोध के रूप में पोस्ट किया जाता है।
चरण 4: सर्वर> लॉगिन मान्य
सर्वर डेटाबेस में उपयोगकर्ता नाम देखता है, आपूर्ति किए गए लॉगिन पासवर्ड को हैश करता है, और इसकी तुलना डेटाबेस में पहले से मौजूद हैशेड पासवर्ड से करता है। यदि यह जांच नहीं करता है, तो हम उन्हें 401 स्थिति कोड भेजकर और अनुरोध को समाप्त करके एक्सेस से इनकार कर सकते हैं ।
चरण 5: सर्वर> पहुंच टोकन उत्पन्न करना
यदि सब कुछ जांचता है, तो हम एक एक्सेस टोकन बनाने जा रहे हैं, जो विशिष्ट रूप से उपयोगकर्ता के सत्र की पहचान करता है। अभी भी सर्वर में, हम एक्सेस टोकन के साथ दो काम करते हैं:
- इसे उस उपयोगकर्ता से जुड़े डेटाबेस में संग्रहीत करें
- क्लाइंट को लौटाए जा रहे रिस्पांस कुकी से इसे संलग्न करें। उपयोगकर्ता के सत्र को सीमित करने के लिए एक समाप्ति तिथि / समय निर्धारित करना सुनिश्चित करें
इसके बाद, कुकीज़ क्लाइंट और सर्वर के बीच किए गए हर अनुरोध (और प्रतिक्रिया) से जुड़ी होंगी।
चरण 6: क्लाइंट> पेज अनुरोध करना
क्लाइंट साइड पर वापस, हम अब लॉग इन हो गए हैं। हर बार क्लाइंट एक पेज के लिए अनुरोध करता है जिसे प्राधिकरण की आवश्यकता होती है (यानी उन्हें लॉग इन करने की आवश्यकता होती है), सर्वर कुकी से एक्सेस टोकन प्राप्त करता है और इसे एक के खिलाफ जांचता है उस उपयोगकर्ता के साथ जुड़े डेटाबेस में। यदि यह जांच करता है, तो एक्सेस दी जाती है।
इससे आप कार्य शुरू कर पाएंगे। लॉगआउट पर कुकीज़ साफ़ करना सुनिश्चित करें!