【发布时间】:2021-06-09 04:30:39
【问题描述】:
背景:
我有一个使用 express-session 进行会话管理的 nodejs 应用程序。最近我们对应用程序进行了安全检查,并开始使用安全 cookie。这是快速会话配置:
server.use(
session({
saveUninitialized: true,
rolling: true,
resave: true,
proxy: true,
secret: envConfig.sessionSecret,
cookie: {
maxAge: envConfig.sessionCookie.maxAge,
httpOnly: envConfig.sessionCookie.httpOnly, // was false before security checkup
sameSite: true, // was false before security checkup
secure: envConfig.sessionCookie.secure // was false before security checkup
},
name: envConfig.sessionKey,
store: new MongoDBStore({
uri: envConfig.sessMongoDB.uri,
collection: envConfig.sessMongoDB.collection,
expires: envConfig.sessMongoDB.expires,
connectionOptions: {
useNewUrlParser: true,
useUnifiedTopology: true
}
})
})
);
问题:
问题从这里开始。此会话管理运行良好且稳定。但是,如果我们通过邮件或 whatsapp 网络或任何消息传递应用程序共享任何链接,并且任何人点击该链接。他们将失去会话,换句话说,该人将从应用程序中退出。
浏览器似乎没有与新打开的标签共享当前 cookie 并生成新会话。
以前有没有人遇到过这个问题,我们该如何解决这个问题?
更新 1: 似乎问题出在 WhatsApp 网络上。当我们通过 WhatsApp 网页打开链接时,我们会丢失会话
【问题讨论】:
标签: javascript node.js express express-session