node.js - 与 MySQL 存储的快速会话不保存用户
问题描述
我正在使用 express-session 处理 Node.js 应用程序中的用户会话。问题是在为 MySQL 存储重写它之后,似乎在更改路由后所有信息都消失了,我的中间件再次将我重定向到登录页面。我的代码:
let options = {
host: "localhost",
user: "root",
port: 3306,
password: "",
database: "cursova"
}
var sessionStore = new MySQLStore(options, con);
app.use(session({
key: 'myCookie',
secret: 'secret12345',
store: sessionStore,
resave: false,
saveUninitialized: false,
cookie: {
originalMaxAge: 1000 * 60 * 5,
maxAge: 60000 * 5,
secure: true,
path: '/',
}
}));
解决方案
尝试初始化会话:
app.use((req, res, next) => {
req.session.init = "init";
next();
});
对于会话,我有这个:
const options = {
host: config.db.host,
port: config.db.port,
user: config.db.user,
password: config.db.password,
database: config.db.database
};
const sessionStore = new MySQLStore(options);
const expiryDate = new Date(Date.now() + 24 * 60 * 60 * 1000); // 1 hour
app.use(session({
store: sessionStore,
secret: process.env.SESSIONSECRET,
resave: false,
saveUninitialized: false,
cookie: {
//secure: true,
//httpOnly: true,
expires: expiryDate
}
}));
我没有通过连接,也没有密钥。一旦我知道它可以工作,我就会添加 HTTP 并保护它。
推荐阅读
- powerbi - PowerBI中显示单位格式化DAX
- nginx - 如果其中一个节点关闭,Kubernetes 入口控制器不会重定向请求
- rest - 在 Python-3.6 中使用 Tornado 发送文件
- verilog - 我可以在 System Verilog 中对 typedef 结构进行参数化吗?
- cakephp - Cakephp3:如何在 Json 中返回未转义的 URL
- javascript - 如何通过 javascript 将 Bootstrap 类添加到“按钮”元素?
- redis - Nestjs 和 GraphQL 的日期对象反序列化问题(使用微服务)
- arrays - 嘿,我最近学习了递归,我想知道为什么我的代码不能在 c 中工作
- windows-10 - 我正在尝试将 W7 Delphi10.4 升级到新的 W10 Pc 10.4.2 - 有问题
- r - R - 文件中的错误(con,“r”):无法打开与