在开发服务器上是isAuthenticated false passportjs

时间:2016-07-14 11:05:35

标签: javascript node.js express passport.js

我在Nodejs + Express上有一些项目。要在网站上登录,我将passportjslocalStrategy一起使用。

如果我在本地主机上登录,req.isAuthenticated返回true并且会话工作正确。

但是当我在开发服务器上执行此操作时,req.isAuthenticated会返回false并且会话将会失败。

我尝试在模块上找到错误,但它们的工作正确。

这是我的代码:

表达会话

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());

...

版本: 护照:0.3.2, 快递:1.13.0, 表达:4.13.1, nodejs:4.2.6

可能是什么问题?感谢

0 个答案:

没有答案