我使用passport.js来处理我的nodejs + express.js应用程序上的auth.我设置了一个LocalStrategy来从mongodb获取用户
我的问题是,当我重新启动节点服务器时,用户必须重新进行身份验证.这是一个问题,因为我正在积极开发它,并且不要在每次重启时都登录...(+我使用节点主管)
这是我的应用设置:
app.configure(function(){
    app.use('/static', express.static(__dirname + '/static'));
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(express.cookieParser());
    app.use(express.session({secret:'something'}));
    app.use(passport.initialize());
    app.use(passport.session());
    app.use(app.router);
});
会话序列化设置:
passport.serializeUser(function(user, done) {
    done(null, user.email);
});
passport.deserializeUser(function(email, done) {
    User.findOne({email:email}, function(err, user) {
        done(err, user);
    });
});
我尝试使用connect-mongodb在博客上给出的解决方案(删除链接,因为它不再存在),但没有成功
app.use(express.session({
    secret:'something else',
    cookie: {maxAge: 60000 * 60 * 24 * 30}, // 30 days
        store: MongoDBStore({
        db: mongoose.connection.db
    })
}));
编辑附加问题:只应该建立一个连接(使用一个连接有限的mongohq免费服务)
编辑2解决方案(作为一个版本,因为我的声誉很低,现在回答我的问题
这是我最终找到的解决方案,使用mongoose启动的连接
app.use(express.session({
    secret:'awesome unicorns',
    maxAge: new Date(Date.now() + 3600000),
    store: new MongoStore(
        {db:mongoose.connection.db},
        function(err){ …我正在使用护照来处理我的应用程序中的身份验证和会话.我正在使用mongostore坚持使用mongodb.
设置工作正常.但是,当我重新启动服务器时,所有用户都被注销,因此显然会话被保留在内存中而不是仅保留到mongodb.我正在尝试实现用户在重新启动服务器时仍然登录的设置.
基本配置如下
    app.use(express.cookieParser('your secret here'));
    app.use(express.session());
    app.use(passport.initialize());
    app.use(passport.session({
        maxAge: new Date(Date.now() + 3600000),
        store: new MongoStore(
            {
                db: mongodb.Db(
                    conf.mongodbName,
                    new mongodb.Server(
                        'localhost',
                        27017,
                        {
                            auto_reconnect: true,
                            native_parser: true
                        }
                    ),
                    {
                        journal: true
                    }
                )
            },
            function(error) {
                if(error) {
                    return console.error('Failed connecting mongostore for storing session data. %s', error.stack);
                }
                return console.log('Connected mongostore for storing session data');
            }
        )
    }));
passport.use(new LocalStrategy(
    {
        usernameField: 'email',
        passwordField: 'password'
    },
    function(email, password, done) {
        console.log('user %s attempting …