小编Pra*_*han的帖子

Express JS/Node JS:当secure=true,sameSite:'none'时浏览器不设置cookie

如果我在本地运行服务器,它会设置 cookie,但是当它在线托管时:

  1. 如果secure=false, sameSite: 'none' 然后我收到以下错误

Cookie“connect.sid”很快就会被拒绝,因为它的“sameSite”属性设置为“none”或无效值,没有“secure”属性。要了解有关“sameSite”属性的更多信息,请阅读 https://developer.mozilla.org/docs/Web/HTTP/Headers/Set-Cookie/SameSite

然后我尝试使用 secure=true

  1. 如果 secure=true, sameSite: 'none' 那么我知道它应该可以工作,

它可以工作,并且当服务器在本地托管时设置了 cookie。但是当它托管在 heroku 中时,cookie 没有设置,我没有收到任何错误。

好像客户端网站不安全,但它在 url 框中显示 https

我在这里做错了什么?

会话配置:

router.use(
    session({
        cookie: {
            secure: true,
            maxAge: 86400,
            sameSite: "none",
        },
        secret: process.env.SESSION_SECRET,
        resave: false,
        saveUninitialized: false,
    })
);
Run Code Online (Sandbox Code Playgroud)

注意:我已经启用了凭据设置为 true 的 cors XHR cookies 选项卡中的 cookies 选项卡为空前端和后端分别托管在 heroku XMLHttpRequest 用于发送 withCredentials 设置为 true 的 post 请求。

XHRPOSThttps://sih-drs-prototype-backend-2.herokuapp.com/api/outrages/login [HTTP/1.1 200 OK 1625ms]

POST https://sih-drs-prototype-backend-2.herokuapp.com/api/outrages/login Status200 OK VersionHTTP/1.1 Transferred367 B(2B大小)

Access-Control-Allow-Credentials
    true
Access-Control-Allow-Origin
    https://tempautocomplete.herokuapp.com …
Run Code Online (Sandbox Code Playgroud)

cookies node.js express express-session

15
推荐指数
1
解决办法
4951
查看次数

标签 统计

cookies ×1

express ×1

express-session ×1

node.js ×1