उपयोगकर्ता पंजीकरण और लॉगिन
पासवर्ड हैशिंग और प्रमाण-पत्रों के सुरक्षित भंडारण सहित उपयोगकर्ता पंजीकरण तथा लॉगिन की कार्यक्षमताएँ बनाइए।
उपयोगकर्ता पंजीकरण और लॉगिन, CoddyKit पर Node.js बैकएंड विकास बूटकैंप का एक निःशुल्क पाठ है। यह 6 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Node.js बैकएंड विकास बूटकैंप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Node.js बैकएंड विकास बूटकैंप पाठ्यक्रम में कुल 6 पाठ शामिल हैं।
उपयोगकर्ता प्रमाणीकरण में आपका स्वागत है
उपयोगकर्ता प्रमाणीकरण वह प्रक्रिया है जिससे हम सत्यापित करते हैं कि उपयोगकर्ता कौन है। व्यक्तिगत डेटा या प्रतिबंधित सुविधाओं से जुड़े लगभग हर ऐप्लिकेशन का यह एक महत्वपूर्ण हिस्सा है।
- यह महत्वपूर्ण क्यों है: उपयोगकर्ता खातों और संवेदनशील जानकारी की सुरक्षा करता है।
- हम क्या सीखेंगे: शुरुआत से पंजीकरण और लॉगिन प्रवाह बनाना।
उपयोगकर्ता पंजीकरण प्रवाह
नए उपयोगकर्ता का पंजीकरण करने में नया खाता बनाने के लिए कई चरण शामिल होते हैं:
- उपयोगकर्ता अपनी प्रमाण-पत्र जानकारी (जैसे username, password और email) देता है।
- इनपुट डेटा का मान्यकरण किया जाता है (जैसे मज़बूत पासवर्ड और विशिष्ट ईमेल)।
- सुरक्षा के लिए पासवर्ड का हैश बनाया जाता है।
- नए उपयोगकर्ता का डेटा (हैश किए गए पासवर्ड सहित) डेटाबेस में सहेजा जाता है।
पासवर्ड का हैश क्यों बनाते हैं
पासवर्ड को साधारण टेक्स्ट के रूप में संग्रहीत करना बहुत बड़ा सुरक्षा जोखिम है! यदि आपके डेटाबेस में सेंध लगती है, तो सभी उपयोगकर्ताओं के पासवर्ड उजागर हो जाएंगे।
हैशिंग पासवर्ड को एक निश्चित आकार की अपठनीय स्ट्रिंग में बदल देती है। यह एक-तरफ़ा प्रक्रिया है, जिसका अर्थ है कि हैश से मूल पासवर्ड आसानी से वापस प्राप्त नहीं किया जा सकता।
मज़बूत पासवर्ड हैशिंग के लिए Node.js में bcrypt जैसी लाइब्रेरी का उपयोग किया जाता है। यह सामान्य हमलों को रोकने के लिए 'salt' भी जोड़ती है।
bcrypt से पासवर्ड का हैश बनाना
bcrypt पासवर्ड का सुरक्षित तरीके से हैश बनाने वाली एक लोकप्रिय लाइब्रेरी है। इसमें बहुत अधिक कंप्यूटेशन लगता है, जिससे ब्रूट-फोर्स हमले कठिन हो जाते हैं।
पासवर्ड का हैश देखने के लिए यह उदाहरण चलाकर देखें:
const bcrypt = require('bcrypt');
const password = "mySecretP@ssword";
const saltRounds = 10; // Cost factor for hashing (higher is slower/more secure)
async function hashPassword() {
try {
const hashedPassword = await bcrypt.hash(password, saltRounds);
console.log("Original: " + password);
console.log("Hashed: " + hashedPassword);
} catch (error) {
console.error("Error hashing:" + error.message);
}
}
hashPassword();
हैश किए गए प्रमाण-पत्र संग्रहीत करना
हैश बनाने के बाद, डेटाबेस में उपयोगकर्ता के ईमेल या username जैसे अन्य विवरणों के साथ केवल हैश किया हुआ पासवर्ड ही संग्रहीत किया जाना चाहिए।
- NEVER साधारण टेक्स्ट वाले पासवर्ड संग्रहीत करें।
- हर पासवर्ड का हैश अलग होता है, भले ही मूल पासवर्ड एक जैसे हों (salt के कारण)।
- लॉगिन के दौरान तुलना करने के लिए इसी हैश का उपयोग किया जाता है।
उपयोगकर्ता लॉगिन प्रवाह
जब कोई उपयोगकर्ता लॉगिन करने का प्रयास करता है, तो आपका ऐप्लिकेशन इन चरणों का पालन करता है:
- उपयोगकर्ता अपना username/email और password देता है।
- ऐप्लिकेशन username/email के आधार पर डेटाबेस से उपयोगकर्ता का रिकॉर्ड (संग्रहीत हैश किए गए पासवर्ड सहित) प्राप्त करता है।
- दिए गए पासवर्ड का हैश बनाया जाता है और संग्रहीत हैश से उसकी तुलना की जाती है।
- यदि दोनों मेल खाते हैं, तो उपयोगकर्ता प्रमाणित हो जाता है और एक सत्र या टोकन बनाया जाता है।
bcrypt से पासवर्ड सत्यापित करना
यह जाँचने के लिए कि उपयोगकर्ता द्वारा दिया गया पासवर्ड संग्रहीत हैश से मेल खाता है या नहीं, हम bcrypt.compare() का उपयोग करते हैं। यह हैश बनाने और तुलना करने का काम सुरक्षित तरीके से करता है।
पासवर्ड तुलना को क्रियान्वित होते देखने के लिए यह कोड चलाएँ:
const bcrypt = require('bcrypt');
// This hash would typically come from your database
const storedHash = "$2b$10$w090/qB2k6n0Y7o8p9q.u.0Z1X2Y3Z4A5B6C7D8E9F0G1H2I3J4K5L6M7N8O9P0Q1R";
const passwordAttempt = "mySecretP@ssword";
const wrongAttempt = "incorrectPassword";
async function comparePasswords() {
try {
const isMatch = await bcrypt.compare(passwordAttempt, storedHash);
console.log(`'${passwordAttempt}' matches: ${isMatch}`);
const isWrongMatch = await bcrypt.compare(wrongAttempt, storedHash);
console.log(`'${wrongAttempt}' matches: ${isWrongMatch}`);
} catch (error) {
console.error("Error comparing:" + error.message);
}
}
comparePasswords();
प्रमाण-पत्रों के सुरक्षित संग्रहण की प्रक्रियाएँ
केवल पासवर्ड का हैश बनाना ही पर्याप्त नहीं है; अन्य प्रमाण-पत्रों की भी सुरक्षा करनी होती है:
- API Keys और Database URLs: इन्हें सीधे अपने कोड में रखने के बजाय पर्यावरण चर (जैसे
.envफ़ाइलों) में संग्रहीत करें। - संवेदनशील उपयोगकर्ता डेटा: डेटाबेस में स्थायी रूप से संग्रहीत अत्यधिक संवेदनशील डेटा को एन्क्रिप्ट करें।
- नियमित अपडेट: अपनी हैशिंग लाइब्रेरी और निर्भरताओं को अद्यतन रखें।
प्रमाणीकरण त्रुटियों को संभालना
पंजीकरण या लॉगिन विफल होने पर उपयोगकर्ता को उपयोगी लेकिन सामान्य त्रुटि संदेश दें। इससे संभावित हमलावरों के सामने बहुत अधिक जानकारी उजागर होने से बचा जा सकता है।
- 'User not found' कहने के बजाय 'Invalid credentials' कहें।
- 'Password incorrect' कहने के बजाय भी 'Invalid credentials' कहें।
- डिबगिंग के लिए सर्वर की ओर विस्तृत त्रुटियों का लॉग रखें, लेकिन उन्हें क्लाइंट के सामने उजागर न करें।
त्वरित जाँच: पासवर्ड हैशिंग
जाँचें कि आप समझते हैं या नहीं कि सुरक्षा के लिए पासवर्ड का हैश बनाना क्यों आवश्यक है।
पुनरावलोकन: पंजीकरण और लॉगिन
इस पाठ में आपने उपयोगकर्ता पंजीकरण और लॉगिन के लिए आवश्यक मूल चरण सीखे:
- संवेदनशील उपयोगकर्ता डेटा की सुरक्षा के लिए
bcryptका उपयोग करके पासवर्ड हैशिंग का महत्व समझा। - आपने देखा कि पंजीकरण के लिए हैशिंग और लॉगिन के लिए तुलना, दोनों को कैसे लागू किया जाता है।
- हमने सुरक्षित क्रेडेंशियल संग्रहण और प्रमाणीकरण त्रुटियों को उचित ढंग से संभालने के सर्वोत्तम तरीकों पर भी चर्चा की।
अब हम JSON Web Tokens (JWTs) का उपयोग करके स्टेटलेस प्रमाणीकरण लागू करना सीखेंगे।
एआई शिक्षक के साथ JavaScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 22
- पाठ
- 92
अक्सर पूछे जाने वाले प्रश्न
क्या “उपयोगकर्ता पंजीकरण और लॉगिन” पाठ निःशुल्क है?
हाँ—“उपयोगकर्ता पंजीकरण और लॉगिन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Node.js बैकएंड विकास बूटकैंप पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Node.js बैकएंड विकास बूटकैंप पाठ्यक्रम में कुल 6 पाठ शामिल हैं।
“उपयोगकर्ता पंजीकरण और लॉगिन” में मैं क्या सीखूँगा?
पासवर्ड हैशिंग और प्रमाण-पत्रों के सुरक्षित भंडारण सहित उपयोगकर्ता पंजीकरण तथा लॉगिन की कार्यक्षमताएँ बनाइए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Node.js बैकएंड विकास बूटकैंप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Node.js बैकएंड विकास बूटकैंप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Node.js बैकएंड विकास बूटकैंप शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 6 में से 1वाँ पाठ है।
“उपयोगकर्ता पंजीकरण और लॉगिन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Node.js बैकएंड विकास बूटकैंप पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Node.js बैकएंड विकास बूटकैंप पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- उपयोगकर्ता पंजीकरण और लॉगिन
- JWT टोकन बनाना और सत्यापन
- स्टेटलेस प्रमाणीकरण के लिए JWT
- OAuth2 पासवर्ड फ़्लो एकीकरण
- भूमिका-आधारित पहुँच नियंत्रण
- भूमिका-आधारित पहुँच नियंत्रण (RBAC)