आपको केवल .authenticate
. को संशोधित करने की आवश्यकता है तरीका। चूंकि डेटाबेस से कनेक्ट करना एक एसिंक्रोनस ऑपरेशन है (या होना चाहिए), तो आपको promise
जोड़ना होगा ऑब्जेक्ट (देखें everyauth दस्तावेज़
)।
मान लें कि आपके पास user
. के अनुरूप उपयोगकर्ता डेटा के साथ कुछ ORM है username
के साथ वस्तु और password
विशेषताएँ (मेरे उदाहरण में मैं नेवला इंजन का उपयोग करूँगा), यह इस तरह दिख सकता है:
.authenticate( function (login, password) {
var promise = this.Promise(); /* setup promise object */
/* asynchrnously connect to DB and retrieve the data for authentication */
db.find({ username:login }, function(err, user) {
if (err)
return promise.fulfill([err]);
if ((!user) || (user.password != password))
return promise.fulfill(['Incorrect username or password!']);
promise.fulfill(user);
});
return promise; /* return promise object */
})
मैंने इसका परीक्षण नहीं किया, लेकिन दस्तावेज़ीकरण के अनुसार इसे काम करना चाहिए। याद रखें कि त्रुटियों को सरणी में रखा जाना चाहिए।
वैसे:यदि आप केवल पासवर्ड विधि का उपयोग कर रहे हैं, तो आपको पता है कि मक्खी के खिलाफ तोप का उपयोग करने की कोई आवश्यकता नहीं है। :) अपना खुद का लिखना (जरूरी नहीं कि सही, लेकिन काम कर रहा) प्रमाणीकरण तंत्र वास्तव में सरल है और यदि आप नहीं जानते कि यह कैसे करना है तो आपको इसे सीखना चाहिए। भविष्य में इसका फायदा होगा, क्योंकि हर वेब ऐप में प्रमाणीकरण और सुरक्षा सामान्य रूप से बहुत महत्वपूर्ण हैं।