gpt4 book ai didi

node.js - 为什么快速 session cookie 作为第三方 cookie 被阻止

转载 作者:太空宇宙 更新时间:2023-11-03 22:28:13 25 4
gpt4 key购买 nike

我正在使用express-session模块,它在本地主机上完美运行,但在我的网站上(使用Cloudflare托管在Heroku上),express session 被作为第三方cookie而被阻止。这是我的 session 的配置:

app.use(session({
resave: false,
saveUninitialized: false,
proxy : true,
cookie: {
maxAge: 3600000000000,
httpOnly: false,
secure: false,
domain: '.mydomain.com',
path: '/'
},
store: sessionStore,
secret: 'mysecret',
unset: 'destroy'
}));

这是 Express 还是 Cloudflare/Heroku 的问题?

最佳答案

#为什么cookie被阻止

来自whatis.techtarget.com :

A third-party cookie is one that is placed on a user’s hard disk by aWeb site from a domain other than the one a user is visiting.

正如您在评论中提到的,您的客户端和服务器位于不同的域中:
www.castcrunch.com是我的客户端服务器的 URL,cast-crunch-server.herokuapp.com 是我的后端服务器的 URL

您可以在 RFC 6265 中阅读有关 cookie 域的更多信息。 :

The Domain attribute specifies those hosts to which the cookie will be sent.

<小时/>

#你可以对此做些什么

this dzone article 中所述,您可以使用Json Web Tokens进行身份验证。您的服务器将在登录响应正文中发送 token ,客户端将存储它并在每个后续请求 header 中将其发送到服务器。

由于您要存储 token ,因此这种方法的缺点是您将容易受到 XSS 攻击。您必须特别注意这一点:清理所有输入,或者更好的是,使用已有的框架和语言。

注意:当然,您也可以在浏览器设置中取消选中“阻止第 3 方 cookie”选项,但这似乎不是一个长期解决方案:)。

关于node.js - 为什么快速 session cookie 作为第三方 cookie 被阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42264821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com