ExpressJS / connect-mongo 更新会话
ExpressJS / connect-mongo update session
我正在使用 connect-mongo 来存储 PassportJS 会话。
我在 server.js 中的配置是:
app.use(session({
name: 'Example',
secret:'exampleasd',
saveUninitialized: false,
resave: false,
cookie: { maxAge: 1000*60*60*2 },
store: new MongoStore({
url: 'mongodb://localhost/example',
host: 'localhost',
collection: 'user-sessions',
autoReconnect: true,
clear_interval: 3600
})
}));
我的问题是,当我更新用户名或电子邮件等用户数据时,我必须注销并登录才能获得更改。
我已经用 req.session.save 和 req.session.reload 试过了,没有成功。
我可以在不注销的情况下更新会话字段吗?
谢谢!
您必须使用 req.user 才能正确更新 req.session.passsport.user 所以:
如果您想更改用户名,只需执行以下操作:
req.user.username = newUsername;
req.session.save(function(err){
//msg here
});
我正在使用 connect-mongo 来存储 PassportJS 会话。 我在 server.js 中的配置是:
app.use(session({
name: 'Example',
secret:'exampleasd',
saveUninitialized: false,
resave: false,
cookie: { maxAge: 1000*60*60*2 },
store: new MongoStore({
url: 'mongodb://localhost/example',
host: 'localhost',
collection: 'user-sessions',
autoReconnect: true,
clear_interval: 3600
})
}));
我的问题是,当我更新用户名或电子邮件等用户数据时,我必须注销并登录才能获得更改。
我已经用 req.session.save 和 req.session.reload 试过了,没有成功。
我可以在不注销的情况下更新会话字段吗?
谢谢!
您必须使用 req.user 才能正确更新 req.session.passsport.user 所以:
如果您想更改用户名,只需执行以下操作:
req.user.username = newUsername;
req.session.save(function(err){
//msg here
});