0
Я использую паспорт для некоторой аутентификации администратора, но перенаправление, похоже, не вызывает меня. В результате все, что печатается на входе в [объект Object]Паспорт и ЭкспрессJS, функция маршрута не называется
Мой код: Маршруты
app.get('/admin', isLoggedIn, Routes.admin);
app.get('/login', Routes.adminLogin);
app.post('/login', passport.authenticate('local-login', {
successRedirect : '/admin',
failureRedirect : '/login'
}));
установка паспорта
var LocalStrategy = require('passport-local').Strategy;
passport.serializeUser(function(user,done){
done(null, user._id);
});
passport.deserializeUser(function(id, done){
user.getCollection().findById(id)
.on('success', function(doc){done(doc)});
});
passport.use('local-login', new LocalStrategy({
usernameField : 'username',
passwordField : 'password',
passReqToCallback : true
}, function(req,username,password,done){
user.getName(username)
.on('success', function(doc){
if(doc == null || doc.password != password) {return done(null, false, "Invalid password");}
return done(null, doc);
})
.on('error', function(err){return done(err);});
}));
};
Администратор маршрута:
var adminRoute = exports.adminRoute = function(req,res){
console.log(" ADMIN PAGE");
res.render('admin.jade');
};
Как выглядит ваш маршрут/контроллер adminLogin? – cyberwombat
Он просто отображает страницу входа. Ничего другого. – robotmayo
Неверный десериализатор, он передает 'doc' как первый аргумент' done', а не второй: 'done (null, doc)'. Не знаю, является ли это причиной вашей проблемы. – robertklep