जब आपके वेब एप्लिकेशन को उपयोगकर्ताओं को "याद" करने की आवश्यकता होती है, तो यह आमतौर पर दो तंत्रों में से एक का उपयोग करता है: कुकीज़ या सत्र। एक कुकी ब्राउज़र में भंडारण का एक छोटा सा क्षेत्र है जहाँ आप उपयोगकर्ता से संबंधित डेटा जैसे खोज प्राथमिकताएँ रख सकते हैं, उदाहरण के लिए। सत्र आपको इसके बजाय सर्वर पर संवेदनशील जानकारी संग्रहीत करने की अनुमति देते हैं।

डिस्कवर करें कि Node.js द्वारा संचालित एक्सप्रेस सर्वर में सत्र कैसे सेट करें।

आपको किस चीज़ की ज़रूरत पड़ेगी

इस ट्यूटोरियल का अनुसरण करने के लिए, आपको Node.js और npm दोनों को इंस्टॉल करना होगा। का कोई नवीनतम संस्करण नोड.जेएस के साथ आना चाहिए एनपीएम, निर्भरता स्थापित करने के लिए एक पैकेज प्रबंधक.

आप एक्सप्रेस और एक्सप्रेस-सत्र स्थापित करने के लिए एनपीएम का उपयोग करेंगे। ये वे उपकरण हैं जिनका उपयोग आप वेब सर्वर और सत्र बनाने के लिए करेंगे।

Node.js में एक सत्र क्या है?

कुकी एक छोटी फ़ाइल होती है जिसका उपयोग आपका ब्राउज़र डेटा स्टोर करने के लिए करता है. आप खोज प्राथमिकताओं जैसे गैर-संवेदनशील डेटा को संग्रहीत करने के लिए कुकीज़ का उपयोग कर सकते हैं।

instagram viewer

आपको संवेदनशील डेटा (जैसे उपयोगकर्ता नाम और पासवर्ड) को कुकीज़ में संग्रहित नहीं करना चाहिए। जब आपका ब्राउज़र HTTP पर कुकीज़ भेजता है, तो वे हैकर्स के लिए असुरक्षित होते हैं जो उन्हें इंटरसेप्ट करने में सक्षम हो सकते हैं। वे आपके कंप्यूटर पर सादे पाठ में भी संग्रहीत होते हैं, इसलिए हैकर संभावित रूप से उनका निरीक्षण कर सकते हैं और आपका डेटा चुरा सकते हैं।

संवेदनशील डेटा को क्लाइंट पर कुकी के रूप में सहेजने के बजाय, आपको इसे सर्वर पर संग्रहीत करना चाहिए। इससे यह बाहरी दुनिया से सुरक्षित रहता है।

सत्र आपको संवेदनशील डेटा संग्रहीत करने की अनुमति देते हैं, जिसकी आवश्यकता आपके ऐप को उपयोगकर्ता की पहचान करने के लिए होती है। उदाहरण उपयोगकर्ता नाम, पासवर्ड और ईमेल हैं। वे अधिक सुरक्षित हैं क्योंकि वे सर्वर पर रहते हैं, क्लाइंट पर नहीं।

किसी भी समय आपके पास डेटा है जिसे आप अनुरोधों में जारी रखना चाहते हैं, इसे सत्र का उपयोग करके सर्वर साइड पर सहेजें। आप निम्न अनुभाग में सीखेंगे कि सत्र कैसे बनाया जाता है।

एक एक्सप्रेस सर्वर में एक सत्र बनाना

एक्सप्रेस Node.js के लिए एक लोकप्रिय वेब फ्रेमवर्क है। यह आपको एक वेब सर्वर एप्लिकेशन सेट करने देता है जो आपके चुने हुए पोर्ट नंबर पर क्लाइंट अनुरोधों को सुनता है। आप एपीआई मार्ग बना सकते हैं, मिडलवेयर लागू कर सकते हैं और यहां तक ​​कि एप्लिकेशन को डेटाबेस से कनेक्ट कर सकते हैं, यह सब फ्रेमवर्क द्वारा प्रदान किए गए एपीआई के लिए धन्यवाद।

1. एक Node.js प्रोजेक्ट बनाएं

अपने प्रोजेक्ट के लिए एक बिल्कुल नया फ़ोल्डर बनाएं, फिर उस फ़ोल्डर में अपना कमांड लाइन टूल और cd लॉन्च करें।

इसके बाद, Node.js प्रोजेक्ट को इनिशियलाइज़ करने के लिए निम्न कमांड चलाएँ:

एनपीएम init -y

यह डिफॉल्ट सेटअप के साथ प्रोजेक्ट के रूट फोल्डर में एक package.json फाइल जेनरेट करता है। चलाने के लिए package.json फ़ाइल एनपीएम स्क्रिप्ट्स.

2. एक्सप्रेस और एक्सप्रेस-सत्र स्थापित करें

वेब सर्वर एप्लिकेशन बनाने के लिए आप एक्सप्रेस का उपयोग करेंगे। और उस सर्वर एप्लिकेशन पर सत्र बनाने के लिए एक्सप्रेस-सत्र।

टर्मिनल पर, दोनों निर्भरताएँ स्थापित करने के लिए निम्न कमांड चलाएँ:

एनपीएम मैं एक्सप्रेस-सत्र व्यक्त करता हूं

दोनों पैकेजों को स्थापित करने के बाद, अगला कदम सर्वर बनाना होगा।

3. ऐप में सत्र बनाएं

अपने प्रोजेक्ट के रूट फ़ोल्डर में App.js नाम की एक फ़ाइल बनाएँ और निर्भरताएँ आयात करें:

कॉन्स्ट एक्सप्रेस = ज़रूरत होना('अभिव्यक्त करना')
कॉन्स्ट सत्र = ज़रूरत होना('एक्सप्रेस सत्र')
ऐप = एक्सप्रेस ()

अगला, सत्र मिडलवेयर पंजीकृत करें। किसी वस्तु में पास करें गुप्त संपत्ति (सत्र आईडी कुकी पर हस्ताक्षर करने के लिए) और कुकी।

ऐप.उपयोग (
सत्र({
गुप्त: "कुछ रहस्य",
कुकी: { maxAge: 30000 },
सहेजेंप्रारंभिक: असत्य,
})
);

यहां आप सत्र की अधिकतम आयु को 30 सेकंड पर सेट करते हैं (30000 मिलीसेकंड)। अगर आपके पास लॉगिन सिस्टम है तो saveUnitialized को गलत पर सेट करना आवश्यक है। यदि आप ऐसा करने में विफल रहते हैं, तो आपका सर्वर हर बार उपयोगकर्ता द्वारा अनुरोध भेजने पर एक नया सत्र आईडी उत्पन्न करेगा।

अगला, सत्र बदलने के लिए एक लॉगिन रूट बनाएं। जब कोई उपयोगकर्ता इस मार्ग पर आता है, तो आप अपेक्षा करते हैं कि ग्राहक अनुरोध निकाय में उपयोगकर्ता नाम और पासवर्ड भेजेगा। सबसे पहले, आप इन मानों तक पहुँचते हैं और जाँचते हैं कि क्या वे मौजूद हैं (और यदि उपयोगकर्ता ने प्रमाणित किया है):

ऐप पोस्ट ("/लॉग इन करें", (अनुरोध, रेस) => {
कॉन्स्ट {उपयोगकर्ता नाम, पासवर्ड} = req.body;

अगर (प्रयोक्ता नाम पासवर्ड) {
अगर (req.session.authenticated) {
res.json (सत्र);
} अन्य {
अगर (पासवर्ड "123") {
req.session.प्रमाणीकृत = सत्य;
req.session.user = {उपयोगकर्ता नाम};
res.json (req.session);
} अन्य {
res.status (403.json({ एमएसजी: "बुरा क्रेडेंशियल्स" });
}
}
} अन्य {
res.status (403.json({ एमएसजी: "बुरा क्रेडेंशियल्स" });
}
});

पहले if स्टेटमेंट के साथ, आप डमी चेक करते हैं। यह जांच सुनिश्चित करने के लिए है कि आप केवल तभी आगे बढ़ें जब उपयोगकर्ता नाम और पासवर्ड मौजूद हों।

अगला, आप जांचते हैं कि क्या उपयोगकर्ता पहले से ही प्रमाणित है। यदि ऐसा है, तो सत्र को क्लाइंट को वापस भेजें। यदि नहीं, तो प्रमाणित संपत्ति को सत्य पर सेट करें और उपयोगकर्ता नाम को सत्र में सहेजें। फिर इसे ग्राहक को वापस भेजें।

उपरोक्त कोड के साथ, सर्वर प्रत्येक उपयोगकर्ता को याद रखेगा जो सर्वर को अनुरोध भेजता है। ऐसा इसलिए है क्योंकि सत्र में उन्होंने प्रमाणित किया है और उनके अद्वितीय विवरण (उपयोगकर्ता नाम और पासवर्ड) सहेजे गए हैं।

App.js के नीचे निम्न कोड जोड़कर अपना सर्वर प्रारंभ करें:

ऐप.सुनो (3000, () => {
सांत्वना देना।लकड़ी का लट्ठा("सर्वर पोर्ट 3000 पर चल रहा है");
});

इस मार्ग का परीक्षण करने के लिए, आपके द्वारा बनाए गए लॉगिन मार्ग पर अनुरोध भेजने के लिए एपीआई क्लाइंट का उपयोग करें। अनुरोध के मुख्य भाग में उपयोगकर्ता नाम और पासवर्ड भेजना सुनिश्चित करें। रेस्ट क्लाइंट का उपयोग करने पर आपका एपीआई अनुरोध कैसा दिखेगा:

पोस्ट http:// लोकलहोस्ट: 3000/लॉगिन HTTP/1.1
सामग्री प्रकार: "एप्लिकेशन/जेसन"
{ उपयोगकर्ता नाम: "किंग्सले", पासवर्ड: "123"}

यदि सब कुछ ठीक रहा, तो आपको निम्न वस्तु मिलेगी:

{
"कुकी": {
"ओरिजिनलमैक्सएज": 30000,
"केवल http": सत्य,
"पथ": "/"
},
"प्रमाणित": सत्य,
"उपयोगकर्ता": {
"उपयोगकर्ता नाम": "किंग्सले",
"पासवर्ड": "123"
}
}

इस कोड के साथ दो चीजें हुई हैं। सबसे पहले, आपने सर्वर पर प्रमाणित किया है। दूसरा, सत्र में अब आपका लॉगिन विवरण है, इसलिए सर्वर अब जानता है कि आप कौन हैं। जब भी आप एक नया अनुरोध भेजते हैं, तो यह सत्र समाप्त होने तक आपको याद रखेगा और सर्वर इसे हटा देगा।

सत्र उपयोगकर्ता अनुभव में सुधार करते हैं

सत्र Node.js अनुप्रयोगों का एक महत्वपूर्ण हिस्सा हैं। ऐसा इसलिए है क्योंकि वे आपको कई अनुरोधों और प्रतिक्रियाओं में सहभागिता की स्थिति बनाए रखने की अनुमति देते हैं। सत्र उन अनुप्रयोगों के लिए विशेष रूप से महत्वपूर्ण होते हैं जिनमें आपको लॉग इन करने की आवश्यकता होती है।

उपयोगकर्ता-विशिष्ट डेटा का ट्रैक रखने के लिए अपने बैकएंड एप्लिकेशन में सत्रों का उपयोग करें। ऐसे डेटा का एक उदाहरण वे आइटम हैं जिन्हें आपके उपयोगकर्ता ने शॉपिंग कार्ट में जोड़ा है.

सत्रों के बिना, आपको अपने एप्लिकेशन में प्रत्येक उपयोगकर्ता के लिए एक अलग डेटा स्टोर बनाए रखना होगा। यह अक्षम होगा और आवेदन की जटिलता को बढ़ाएगा।

Express.js सत्र, रूटिंग, और बहुत कुछ सरल करता है

Express.js वर्तमान में उपयोग में आने वाला सबसे लोकप्रिय Node.js वेब फ्रेमवर्क है। यह बैकएंड एप्लिकेशन बनाने के लिए कई टूल और लाइब्रेरी प्रदान करता है, और एक्सप्रेस-सेशन लाइब्रेरी उनमें से एक है।

यदि आप बैकएंड वेब डेवलपमेंट के लिए नोड.जेएस का उपयोग करना चाहते हैं, तो एक्सप्रेस देखें।