【问题标题】:Express session does not set cookie on browser when using different port than application使用与应用程序不同的端口时,Express 会话不会在浏览器上设置 cookie
【发布时间】:2021-02-21 10:36:19
【问题描述】:

我的 react 应用程序在 localhost:3000 上运行,我的节点服务器 api 在 localhost:9000 上运行

app.use(cors());

app.use(session({
    secret: 'secret'
    resave: false,
    saveUninitialized: false,
    cookie: {
        domain: 'localhost',
        secure: false
    },
    store: new MongoStore({
        mongooseConnection: db,
        autoRemoveInterval: 1,
        ttl: 259200 // 3 days
    })
}));

当用户进行身份验证时,这仅在我从 localhost:9000 而不是从 localhost:3000 提供我的应用程序时才有效。我知道规则是浏览器不会设置来自不同域的 cookie。但是有没有办法在不使用浏览器中的本地或会话存储的情况下实现我的尝试?

【问题讨论】:

  • 你能准确描述什么有效,什么无效。我不明白你到底在问什么。哪些具体要求不能正常工作?请显示该请求,包括客户端和服务器代码。
  • 我认为这是护照问题,而不是快递问题:stackoverflow.com/questions/37652378/… 我正在这里尝试这样做。

标签: express express-session


【解决方案1】:

这可以在 create-react-app 中解决

https://create-react-app.dev/docs/proxying-api-requests-in-development/#configuring-the-proxy-manually

我最终遵循了这一点,并且效果很好。我还在我的开发服务器上启用了 cors 进行开发。

【讨论】:

    猜你喜欢
    • 2021-02-09
    • 2021-12-26
    • 2019-06-08
    • 2021-01-01
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 2013-11-29
    • 1970-01-01
    相关资源
    最近更新 更多