У меня есть проект на nodejs + express с авторизацией на passportjs.
Если я авторизуюсь на своем локальном хосте (localhost:3000) , то `req.isAuthenticated` возвращает true и сессия пользователя работает корректно.
но если сделать тоже самое на дев сервере, то сессия падает, так как req.isAuthenticated вернет false.
Пытались смотреть внутрь самих модулей, вроде все отрабатывает корректно. Код одинаковый и так и так, версии использованных модулей тоже.
Вот часть кода:
express-session.js
var session = require('express-session'),
express = require('express'),
RedisStore = require('connect-redis')(session);
var date = new Date;
date.setDate(date.getDate() + 30);
module.exports = session({
secret: 'SECRET',
resave: true, //don't save session if unmodified
saveUninitialized: true, // create session until something stored
expires: date.toUTCString(),
cookie: {
secure: false,
httpOnly : true,
maxAge : 30 * 60 * 1000 //30 minutes
},
rolling: true
});
login.js
exports.post = function (req, res, next) {
passport.authenticate('local', { badRequestMessage: 'Error in your fields' },
function (err, user, info) {
if (err) return next(err);
if (user) {
req.logIn(user, function (err) {
if (err) return next(err);
return res.format({
json: function () {
res.json({
link : '/personal/cabinet/'
});
}
});
});
} else {
return res.format({
html: function () {
res.render('auth/login', {
error: info.message,
title: 'Login'
});
},
json: function () {
res.json(info);
}
});
}
}
)(req, res, next);
};
pasportjs
var passport = require('passport'),
localStrategy = require('./strategy/localStrategy'),
models = require('models'),
Author = models.author;
//get user data for session
passport.serializeUser(function (user, done) {
done(null, user);
});
passport.deserializeUser(function (user, done) {
Author.findOne({
where: {
id: user.id
}
}).then(function (user) {
done(null, user);
});
});
localStrategy(passport);
module.exports = passport.initialize();
app.js
...
app.use('bodyParserJson');
app.use('bodyParserUrldecoded');
app.use('cookieParser');
app.use(path.join('authPassport', 'session')); //express-session
app.use(path.join('authPassport', 'init')); //pasportjs
app.use(passport.session());
...
Версии: passport: 0.3.2, express-session: 1.13.0, express: 4.13.1, nodejs: 4.2.6
Подскажите в чем может быть проблема? Куда посмотреть детальней? Спасибо!