【问题标题】:MERN project | Heroku doesn't set client-side cookieMERN项目 | Heroku 不设置客户端 cookie
【发布时间】:2021-10-16 20:16:18
【问题描述】:

我的 MERN 项目在我的本地运行良好,但是当我部署它时,在获取用户时出现 401 错误。 Heroku 不设置客户端 cookie。然后我首先在谷歌上搜索,将我的 cookie-session 更改为 express-session 和其他一些配置,但它仍然无法在 Heroku 上运行。 https://github.com/olcaykaplan/passport_google

cors:

app.use(
  cors({
    origin: "http://localhost:3000",
    credentials: true,
    methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
    allowedHeaders: ['Content-Type', 'Authorization']

  })
);

快速会话:

    app.use(
  express.session({
    secret: "secret",
    resave: false,
    saveUninitialized: true,
    store: sessionStore,
    proxy: true,
    cookie: {
      httpOnly:true,
      secure: true,
      maxAge: oneDay,
    },
  })
);

【问题讨论】:

    标签: node.js heroku passport.js


    【解决方案1】:

    如果您的客户端在本地工作, 将安全值更改为 false,删除代理和相同站点

    该项目使用以下 cors 和会话信息运行良好

    app.use(
      cors({
        origin: "netlify url",
        credentials: true,
        methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
        allowedHeaders: ['Content-Type', 'Authorization']
    
      })
    );
    const oneDay = 1000 * 60 * 60 * 24; // Equals 1 day (1 day * 24 hr/1 day * 60 min/1 hr * 60 sec/1 min * 1000 ms / 1 sec)
    app.use(cookieParser("secret"));
    app.use(
      express.session({
        secret: "secret",
        resave: false,
        saveUninitialized: true,
        store: sessionStore,
        proxy: true, 
        cookie: {
          sameSite:"none", 
          //path: "/",
          httpOnly:true,
          secure: true, 
          maxAge: oneDay,
        },
      })
    );
    

    【讨论】:

      猜你喜欢
      • 2022-11-30
      • 2014-03-31
      • 1970-01-01
      • 2019-05-17
      • 2012-08-17
      • 1970-01-01
      • 2020-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多