gpt4 book ai didi

node.js - 清除 mongodb、expressjs、nodejs 中的 session

转载 作者:IT老高 更新时间:2023-10-28 13:24:50 27 4
gpt4 key购买 nike

我的配置:

app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({
secret: 'MY SECRET',
store: new MongoStore({
db: 'MY SESSION DB',
host: 'localhost',
port:88888
})
}));
app.use(everyauth.middleware());
app.use(express.methodOverride());

app.use(app.router);
});

app.configure('dev', function(){
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
appPort = config.port; //Setting PORT to 8888 in dev mode.
app.use('/public', express.static(__dirname + '/public'));
});

app.configure('production', function(){
app.use(express.errorHandler());
appPort = config.port;
//Set cache-header-expires to 1 day
var oneDay = 86400000;
//app.use('/public', express.static(__dirname + '/public'));
app.use('/public',express.static(__dirname + '/public', { maxAge: oneDay }));
});

现在,我有一个“注销”链接,该链接指向我的应用程序上的/logout。

AFAIK,express 自动负责在注销时清除 session 。但是对于我的配置,我认为它不会那样做。例如,附加到 session 的自定义变量

req.session.custom

注销后仍然保留。然而,

req.session.auth

注销后清除。

我的 MongoDb 存储中的 session 对象的数量只会随着时间的推移而增加。我也在使用 everyauth

我错过了什么或做错了什么?

最佳答案

如果您想在用户注销时完全清除 session ,您可以从 everyauth.everymodule.handleLogout 函数中调用 req.session.destroy()。调用 req.logout() 时只清除 req.session.auth

关于node.js - 清除 mongodb、expressjs、nodejs 中的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11273988/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com