मैं वर्तमान में node.js में अपने प्रोजेक्ट के लिए प्रमाणीकरण मॉड्यूल बनाने की कोशिश कर रहा हूं?हैश उत्पन्न करने के लिए node.js में उपयोग करने के लिए Async या सिंक bcrypt फ़ंक्शन?
मैं पहले से ही, bcrypt का उपयोग कर हैश उत्पन्न करने के लिए के कुछ उदाहरण देखा है अर्थात
https://github.com/bnoguchi/mongoose-auth/blob/master/lib/modules/password/plugin.js https://github.com/Turbo87/locomotive-passport-boilerplate/blob/master/app/models/account.js
हालांकि, किसी कारण से वे bcrypt.hashSync() फ़ंक्शन का उपयोग कर रहे हैं।
User.virtual('password')
.get(function() {
return this.hash;
})
.set(function (password) {
bcrypt.hash('password', 10, function(err, hash) {
this.hash = hash;
});
});
आप कृपया मुझे समझा सकते हैं जो रास्ता बेहतर है और क्यों है: चूंकि bcrypt अच्छा है, क्योंकि यह समय लेने वाली है, है ना यह बजाय क्रम में कोड ब्लॉक नहीं करने के लिए अतुल्यकालिक समारोह का उपयोग करने के, यानी समझदार हो सकता है? धन्यवाद!
+1, एसिंक निश्चित रूप से सही विकल्प है; मोंगोस जैसे ओडीएम का उपयोग करते समय ध्यान में रखना एक बात यह है कि गेटर्स और सेटर्स असीमित नहीं हो सकते हैं, इसलिए कुछ लेखक इसके बजाय सिंक्रोनस विधियों का उपयोग करेंगे। यह आम तौर पर गलत कदम है; अतीत में, मैंने एसिंक पासवर्ड सेट करने के लिए 'setPassword' जैसे मॉडल पर एक कस्टम विधि का उपयोग किया है। –
@ ब्रैंडन टिली क्या आप अपनी कस्टम विधि का उदाहरण दे सकते हैं? –
@lori ओह मैन, यह कुछ समय हो गया है क्योंकि मैंने इसे पोस्ट किया है, लेकिन ऐसा कुछ करीब लगता है: https://gist.github.com/BinaryMuse/7983335 –