कृपया ध्यान दें मैं कि Node.js में कुल शुरुआत तो मैं Node.js + एक्सप्रेस 3 + पासपोर्ट उपयोग कर रहा हूँ मेरे साथ कृपया धैर्य रखें :)Node.js और पासपोर्ट वस्तु कोई विधि validPassword
है एक साधारण प्रमाणीकरण (स्थानीय) बस के चारों ओर खेलने के लिए
बनाने के लिए और मैं अब तक कि जब एक गलत नाम या पासवर्ड उपयोगकर्ता द्वारा दर्ज एक त्रुटि पृष्ठ
लेकिन रीडायरेक्ट हो गई है क्या पहुँच गए हैं जब उपयोगकर्ता एक सही में प्रवेश करती है उपयोगकर्ता नाम और पासवर्ड मुझे यह त्रुटि मिलती है
node_modules\mongoose\lib\utils.js:435
throw err;
^
TypeError: Object { _id: 50b347decfd61ab9e9e6768f,
username: 'saleh',
password: '123456' } has no method 'validPassword'
मुझे यकीन है कि क्या गलत वहाँ
app.js (मैं अनावश्यक कोड निकाला गया) है नहीं कर रहा हूँ:
var passport = require('passport')
, LocalStrategy = require('passport-local').Strategy;
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(passport.initialize());
app.use(passport.session());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
var mongoose = require('mongoose');
var db = mongoose.createConnection('localhost', 'authTest');
var authSchema = mongoose.Schema({
username: 'string',
password: 'string'
});
var User = db.model('users', authSchema);
passport.use(new LocalStrategy(
function(username, password, done) {
User.findOne({ username: username }, function (err, user) {
if (err) { return done(err); }
if (!user) {
return done(null, false, { message: 'Incorrect username.' });
}
if (!user.validPassword(password)) {
return done(null, false, { message: 'Incorrect password.' });
}
return done(null, user);
});
}
));
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
app.post('/login',
passport.authenticate('local', { successRedirect: '/',
failureRedirect: '/login/error',
})
);
और अब मार्गों में/login.js
var mongoose = require('mongoose');
var db = mongoose.createConnection('localhost', 'authTest');
var authSchema = mongoose.Schema({
username: 'string',
password: 'string'
});
var User = db.model('users', authSchema);
exports.index = function(req, res){
User.find(function (err, list) {
res.render('login', { title: 'Usernames and Passwords', users: list,msg:""});
});
};
आपके समय के लिए धन्यवाद।
धन्यवाद :) यह अब काम करता है –
यदि आप कर सकते हैं तो एक और सवाल .. क्या आप मुझे नोड.जेएस सीखने के लिए एक पुस्तक या कोई संसाधन सुझा सकते हैं? –
@ मुहम्मदमालेह मुझे कोई नोड.जेएस पुस्तक नहीं पता। मैंने लगातार गुगल करके सबकुछ सीखा है। [Node.JS मुख्य पृष्ठ] पर ट्यूटोरियल के साथ शुरू करें (http://nodejs.org/)। और फिर बस गूगल। स्टैक ओवरफ्लो ज्ञान का एक बड़ा स्रोत भी है। इस तरह मैंने इसे सीखा है। – freakish