2011-11-08 15 views
38

में मैं node.js के लिए नया हूं और उपयोगकर्ता के लिए पंजीकरण और लॉगिन पेज बनाना चाहता हूं। इसलिए उपयोगकर्ता के लिए उचित प्रमाणीकरण करना है। मैं उपयोगकर्ता की जानकारी स्टोर करना चाहता हूं mongodb डेटाबेस के अंदर। मैं यह कैसे प्राप्त कर सकता हूं। कोई मुझे ऐसा करने के लिए कोड प्रदान करता है, ताकि मैं node.js और mongodb के साथ शुरू कर सकूं। कृपयापंजीकरण और लॉगिन फॉर्म node.js और mongodb

+0

आपने अभी तक क्या प्रयास किया है? – beny23

उत्तर

42

आप आप क्या कर रहे हैं की एक पूरी नमूना प्राप्त कर सकते हैं का उपयोग कर लॉगिन करने के लिए एक मानक सरल तरीका प्रदान करता है Nodepad application by Alex Young में करने की कोशिश कर रहा है। 2 महत्वपूर्ण फ़ाइल आप एक बार देख लेना चाहिए पर इन 2 हैं:

https://github.com/alexyoung/nodepad/blob/master/models.js
https://github.com/alexyoung/nodepad/blob/master/app.js

मॉडल का एक हिस्सा इस तरह दिखेगा:

User = new Schema({ 
    'email': { type: String, validate: [validatePresenceOf, 'an email is required'], index: { unique: true } }, 
    'hashed_password': String, 
    'salt': String 
    }); 

    User.virtual('id') 
    .get(function() { 
     return this._id.toHexString(); 
    }); 

    User.virtual('password') 
    .set(function(password) { 
     this._password = password; 
     this.salt = this.makeSalt(); 
     this.hashed_password = this.encryptPassword(password); 
    }) 
    .get(function() { return this._password; }); 

    User.method('authenticate', function(plainText) { 
    return this.encryptPassword(plainText) === this.hashed_password; 
    }); 

    User.method('makeSalt', function() { 
    return Math.round((new Date().valueOf() * Math.random())) + ''; 
    }); 

    User.method('encryptPassword', function(password) { 
    return crypto.createHmac('sha1', this.salt).update(password).digest('hex'); 
    }); 

    User.pre('save', function(next) { 
    if (!validatePresenceOf(this.password)) { 
     next(new Error('Invalid password')); 
    } else { 
     next(); 
    } 
    }); 

मैं वह भी explains the code on the dailyjs site लगता है।

+0

एलेक्स के ट्यूटोरियल बिल्कुल वही था जो मुझे चाहिए था। – mwilcox

+3

http://dailyjs.com/2010/12/06/node-tutorial-5/ यहां प्रमाणीकरण के लिए पृष्ठ है। –

10

प्रारंभ करने के लिए एक आसान तरीका पर एक नज़र डालें ExpressJS + MongooseJS + MongooseAuth

विशेष रूप से, कि पिछले प्लग में कई अलग अलग प्रमाणीकरण तरीकों (पासवर्ड, फेसबुक, ट्विटर, आदि)

+0

क्या कोई तरीका है कि मैं डेटाबेस (mongodb) के अंदर लॉगिन विवरण संग्रहीत कर सकता हूं और बाद में विवरण पुनर्प्राप्त कर सकता हूं और जांच सकता हूं कि डेटाबेस में विशेष उपयोगकर्ता मौजूद है या नहीं, यदि हां तो उपयोगकर्ता को लॉगिन करने और किसी अन्य पृष्ठ पर रीडायरेक्ट करने की अनुमति होगी। वह नहीं होगा। कोई भी मुझे संदर्भ –

+1

@DarHamid Mongoose-auth के लिए कोड प्रदान करता है स्वचालित रूप से उपयोगकर्ता जानकारी (पंजीकरण, फेसबुक, ट्विटर, आदि के बाद पासवर्ड से प्राप्त) को एक mongodb में संग्रहीत करता है। इसे क्लोन करें और उदाहरण चलाएं। अधिक जानकारी के लिए Readme.md देखें। – k00k

+1

2 साल बाद ध्यान देने योग्य मूल्य है कि दुखद MongooseAuth अच्छी तरह से बनाए रखा नहीं है और इसके बजाय पासपोर्टजेएस का उपयोग करने के लिए .. – Petrogad

21

मैं एक boilerplate project लिखा करने के लिए exactly this. यह उपयोगकर्ताओं को याद है जब वे लौट सकते हैं और bcyrpt के माध्यम से सुरक्षित पासवर्ड एन्क्रिप्शन के लिए खाता बनाना, ईमेल, सत्र, स्थानीय कुकीज़ के माध्यम से पासवर्ड पुनर्प्राप्ति का समर्थन करता है।

There's also a detailed explanation of the project's architecture on my blog.

+0

डेमो अच्छा है .. लेकिन कोड बहुत दोस्ताना तरीके से लिखा गया है:/ – tUrG0n

+3

मैं असहमत हूं। जब तक वह 13 जून 2012 से इसे बदल नहीं लेता है। मुझे लगता है कि कोड अच्छी तरह से संरचित है और मैं तुरंत बता सकता हूं कि क्या हो रहा है। बाहर की जाँच करने लायक –

+0

यह मेरे लिए एक महान बॉयलरप्लेट था। मेरी आवश्यकताओं को पूरा करने के लिए मैंने निश्चित रूप से इसे संशोधित किया (जैसा कि आपको करना चाहिए)। मैं पासपोर्ट के साथ इस दृष्टिकोण को एकीकृत करने पर बहस कर रहा हूं। मैं मोंगो डीबी को संभालने के लिए मोंगोस पर भी जाऊंगा, अभी तक वहां नहीं मिला है। किसी भी मामले में, यह एक अच्छा संदर्भ परियोजना है। – BRogers

संबंधित मुद्दे