javascript部署的express服务器没有创建会话?

k5ifujac  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(284)

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

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

rm5edbpk1#

发现问题出在服务器上。因为我应用了secure:true,所以它无法工作,因为生产服务器没有使用ssl进行保护。然后我也把饼干换成了samesite:没有。

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

相关问题