मैं MEAN स्टैक (MongoDB, एक्सप्रेस, AngularJS, और node.js) पर एक वेब ऐप विकसित कर रहा हूं। मैं एक लॉगिन प्रणाली विकसित कर रहा हूं, और इसमें कुछ कोणीय मार्ग भी संरक्षित होंगे ताकि केवल लॉग-इन उपयोगकर्ता ही उन्हें एक्सेस कर सकें। मैं इस के आर्किटेक्चर तक पहुंचने का सबसे अच्छा तरीका सोचने की कोशिश कर रहा हूं।MEAN स्टैक पर लॉगिन सिस्टम के लिए आर्किटेक्चर?
मैं वर्तमान कार्यप्रवाह में सोच रहा हूँ:
- उपयोगकर्ता AngularJS रूप है, जो एक एक्सप्रेस समाप्ति बिंदु को एक HTTP POST भेजता है के माध्यम से लॉग करता है। एंडपॉइंट उपयोगकर्ता को डेटाबेस के खिलाफ मान्य करता है, और एक ओथ टोकन के साथ-साथ कुकी के साथ प्रतिक्रिया देता है। बाद में सत्यापन के लिए दोनों को मोंगो डेटाबेस में संग्रहीत किया जाता है।
- एक बार AngularJS लॉगिन प्रतिक्रिया प्राप्त करता है, यह एनजी-कुकीज़ का उपयोग करके प्राप्त कुकी संग्रहीत करता है, और उपयोगकर्ता सेवा में OAuth टोकन संग्रहीत करता है।
- हर बार जब रूट एंगुलरजेएस में बदलता है, तो उपयोगकर्ता सेवा का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि कुकी अभी भी मोंगो डेटाबेस में कुकीज़ की तुलना करके वैध है (यह एंगुलर के संकल्प का उपयोग करके एक एपीआई कॉल होगा ... क्या यह होगा एक ध्यान देने योग्य अंतराल बनाएँ?)
- जब कोई उपयोगकर्ता "लॉग आउट" या कुकी समाप्त हो जाता है, तो कुकी और ओथ टोकन दोनों डेटाबेस से हटा दिए जाते हैं और अब मान्य नहीं होंगे।
क्या यह दृष्टिकोण समझ में आता है? क्या यह सुरक्षित है, और यह निष्पादन में अपेक्षाकृत कुशल/त्वरित होगा?
समझ में आता है, आप सत्रों का भी उपयोग कर सकते हैं, इसलिए जब भी आप मार्ग बदलते हैं तो आप डीबी की जांच नहीं कर रहे हैं। – tymeJV
क्या सत्र एक्सप्रेस द्वारा प्रबंधित किए जाएंगे? और फिर मार्ग परिवर्तन पर मैं अभी भी एक एपीआई कॉल करूँगा लेकिन यह डीबी की जांच नहीं करेगा? – Jakemmarsh
हाँ, 'req.session' - इस पोस्ट को जांचें: http: // stackoverflow।कॉम/प्रश्न/14218725/सत्र-के-सत्र-इन-एक्सप्रेस-जेएस - या आप एचटीएमएल 5 'सत्र स्टोरेज' – tymeJV