Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Node.js express.js passport.js:在服务器重新启动之前保持身份验证大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用passport.js来处理我的nodejs express.js应用程序的身份验证。我设置了一个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){
            console.log(err || 'connect-mongodb setup ok');
        })
}));

解决方法

一个名为 connect-mongo的开源,它完全按照你的需要 – 在mongodb中保存会话数据

使用示例(重用mongoose打开的连接):

var session = require('express-session');
var MongoStore = require('connect-mongo')(session);
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/sess');
app.use(express.session({
    secret:'secret',store: new MongoStore(
    // Following lines of code doesn't work
    // with the connect-mongo version 1.2.1(2016-06-20).
    //    {db:mongoose.connection.db},//    function(err){
    //        console.log(err || 'connect-mongodb setup ok');
    //   }
    {mongooseConnection:mongoose.connection}
    )        
}));

您可以在这里阅读更多:https://github.com/kcbanner/connect-mongo

大佬总结

以上是大佬教程为你收集整理的Node.js express.js passport.js:在服务器重新启动之前保持身份验证全部内容,希望文章能够帮你解决Node.js express.js passport.js:在服务器重新启动之前保持身份验证所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。