我正在使用会话设置简单用户身份验证。用户可以先登录,然后再注销,这似乎很好用,在登录期间,会话可以完美创建,但是看似用户可以很好地注销req.session.destroy(function (err) {})
//Logout from sessions_controller
router.get('/logout', function (req, res, next) {
req.logOut();
req.session.destroy(function (err) {
if (err) {
console.log(err);
} else {
console.log('Session Closed');
res.redirect('/welcome');
}
});
});
来自index.js文件
//Setup to Session storage
app.use(bodyParser.urlencoded({ extended: true }));
app.use(cookieParser());
var options = {
host: 'localhost',
port: 3306,
user: 'root',
password: '',
database: 'mydb'
};
var sessionStore = new MySQLStore(options);
app.use(session({
secret: 'n833475&*6hdfbDBNDHBHSD',
resave: false,
saveUninitialized: true,
store: sessionStore,
// cookie: { secure : true }
cookie: {
httpOnly: false,
secure: false,
maxAge:6000000
}
}))
“我的印象”是,用户应该成功注销,并且他们的会话也要从Cookie中清除,并从数据库中删除。不会发生这种情况,用户可以很好地注销,他们将重定向到主页,但是不会从数据库中删除它,因此仍以某种方式存储了会话。如果我从数据库中手动删除记录并重新加载页面,则会将新记录插入到会话表中,但是从网页中,用户将注销