0
基本上,当我停止服务器并启动备份时,我检查是否已登录,并检查是否有附加到我的Cookie会话的用户标识。它总是返回false。出于某种原因,当我关闭我的服务器时,用户名也附加了我的cookie会话似乎被删除。有没有办法阻止它被删除?我希望能够关闭服务器,然后再打开它,并让connect.sid cookie包含一个user.id,允许我在登录时自动重定向。当我启动服务器备份时,req.user未定义
这里是我创建会话的位置:
app.use(session({
secret: 'secret',
saveUninitialized: true,
cookie: { expires: new Date(253402300000000) }
}));
这里是我附上一个用户ID会话:
app.post('/signin', passport.authenticate('local', {
failureRedirect: '/',
failureFlash: true
}),
function (req, res) {
// If this function gets called, authentication was successful.
// `req.user` contains the authenticated user.
res.redirect('/');
});
这里就是我检查,如果用户登录或不:
app.get('/', function (req, res, next) {
var username;
if (req.user || req.isAuthenticated()) {
username = req.user.username
} else {
username = '';
}
res.render('StockPage/HomePage', { user: username });
next();
});
你必须坚持你的会话存储到磁盘,您可以通过使用一些特定的服务器,如Redis的为实现这一目标@Tuan在下面回答。 Express在内存中使用会话,如果您关闭服务器,则会丢失所有数据。 – bpinhosilva