已部署的 Express 服务器未创建 session?

Deployed express server isn't creating a session?

我已经在数字海洋上部署了一个 node express 服务器。但是,它不会在部署后创建 session。我添加了一个存储以防止内存泄漏并初始化 app.set('trust proxy', 1),在 session 之前。一旦用户通过身份验证,我就会为 session 创建一个用户。下面的代码片段显示了 session.

的配置
app.use(
    session({
        key: "userid",
        secret: "subscribe",
        resave: false,
        saveUninitialized: false,
        store: sessionStore,
        cookie: {
            expires: 60000 * 60,
            domain: ".section-webapp-y793v.ondigitalocean.app"
        }
    })
)

app.get("/login", (req, res) => {
    if (req.session.user) {
        res.send({ loggedIn: true, user: req.session.user })
    } else {
        res.send({ loggedIn: false })
    }
}
)

发现问题出在服务器上。因为我已经申请了 secure:true,所以它不会工作,因为生产服务器没有使用 SSL 保护。然后我也把cookies改成了sameSite:none.

app.use(
    session({
        key: "userid",
        secret: "subscribe",
        resave: false,
        store: sessionStore,
        saveUninitialized: false,
        cookie: {
            expires: 60000 * 60,
            secure: true, 
            sameSite: "none"
        }
    })
)```