【问题标题】:unable to send cookie to backend with heroku无法使用heroku将cookie发送到后端
【发布时间】:2021-01-05 05:57:45
【问题描述】:

我正在向我的后端发出 axios 请求,并设置一个 cookie:

axios.get(`http://mybackend/somepage`)
     .then((response) => {
        res.cookie('token', response.data.token)
        res.send(`click here <a href="http://mybackend/profile">profile</a>`)
})

在我的后端,我使用 express 和“cookie-parser”。

点击后端的链接,我得到了console.log(req.cookies):“[Object: null prototype] {}”。

查看请求标头,cookie 甚至没有发送。

我在 localhost 上测试时没有这个问题。

是否因为无法在两个域之间交换 cookie(在本例中为 2 个 heroku 应用程序)?

【问题讨论】:

    标签: node.js express heroku


    【解决方案1】:

    不,您不能在两个 Heroku 应用之间发送 cookie...
    *.herokuapp.com 已添加到公共后缀列表中,这意味着您不能在这些站点之间交换 cookie。

    herokuapp.com 包含在 Mozilla 基金会的公共后缀列表中。该列表用于多个浏览器的最新版本,例如 Firefox、Chrome 和 Opera,以限制 cookie 的范围。换句话说,在支持该功能的浏览器中,herokuapp.com 域中的应用程序无法为 *.herokuapp.com 设置 cookie。请注意,*.herokuapp.com cookie 当前可以在 Internet Explorer 中设置,但不应依赖此行为,并且将来可能会更改。
    Article

    OtherStackOverflow 问题

    修复

    • 您可以使用自定义域名
    • firstSite.herokuapp.com/secondSite 上提供您的第二个站点

    【讨论】:

    • 会话也一样吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多