【问题标题】:Deployed express server isn't creating a session?部署的快递服务器没有创建会话?
【发布时间】:2021-10-02 05:55:48
【问题描述】:

我在数字海洋上部署了一个节点快递服务器。但是,一旦部署,它就不会创建会话。我添加了一个存储以防止内存泄漏并初始化 app.set('trust proxy', 1),在会议之前。一旦用户通过身份验证,我就会为会话创建一个用户。下面的 sn-p 显示了会话的配置。

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 })
    }
}
)

【问题讨论】:

  • 什么是“sessionStore”?
  • 数据库保存会话
  • 它在哪里初始化?可以分享一下代码吗?
  • 商店工作正常,这不是问题
  • 如你所说)从你的展示来看一切都很好)

标签: javascript node.js express session session-cookies


【解决方案1】:

发现问题出在服务器上。由于我应用了secure:true,因此它无法工作,因为生产服务器没有使用SSL 保护。然后我还将 cookie 更改为 sameSite:none。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-28
    • 2018-06-29
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    相关资源
    最近更新 更多