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

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

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

  1. app.use(
  2. session({
  3. key: "userid",
  4. secret: "subscribe",
  5. resave: false,
  6. saveUninitialized: false,
  7. store: sessionStore,
  8. cookie: {
  9. expires: 60000 * 60,
  10. domain: ".section-webapp-y793v.ondigitalocean.app"
  11. }
  12. })
  13. )
  14. app.get("/login", (req, res) => {
  15. if (req.session.user) {
  16. res.send({ loggedIn: true, user: req.session.user })
  17. } else {
  18. res.send({ loggedIn: false })
  19. }
  20. }
  21. )
rm5edbpk

rm5edbpk1#

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

  1. app.use(
  2. session({
  3. key: "userid",
  4. secret: "subscribe",
  5. resave: false,
  6. store: sessionStore,
  7. saveUninitialized: false,
  8. cookie: {
  9. expires: 60000 * 60,
  10. secure: true,
  11. sameSite: "none"
  12. }
  13. })
  14. )```

相关问题