相关疑难解决方法(0)

在子域和域之间共享cookie

我有两个问题.我理解,如果我.mydomain.com在cookie中指定域(带有前导点),则所有子域都可以共享cookie.

可以subdomain.mydomain.com访问在mydomain.com(没有www子域)中创建的cookie 吗?

如果创建的话,可以mydomain.com(没有www子域)访问cookie subdomain.mydomain.com吗?

cookies subdomain http

368
推荐指数
5
解决办法
25万
查看次数

为跨源请求设置cookie

如何共享cookie跨源?更具体地说,如何将Set-Cookie标题与标题结合使用Access-Control-Allow-Origin

这是我的情况的解释:

我正在尝试localhost:4000为托管在其上的Web应用程序中运行的API设置cookie localhost:3000.

我似乎在浏览器中收到了正确的响应标题,但不幸的是它们没有任何效果.这些是响应标头:

HTTP/1.1 200 OK
Access-Control-Allow-Origin: http://localhost:3000
Vary: Origin, Accept-Encoding
Set-Cookie: token=0d522ba17e130d6d19eb9c25b7ac58387b798639f81ffe75bd449afbc3cc715d6b038e426adeac3316f0511dc7fae3f7; Max-Age=86400; Domain=localhost:4000; Path=/; Expires=Tue, 19 Sep 2017 21:11:36 GMT; HttpOnly
Content-Type: application/json; charset=utf-8
Content-Length: 180
ETag: W/"b4-VNrmF4xNeHGeLrGehNZTQNwAaUQ"
Date: Mon, 18 Sep 2017 21:11:36 GMT
Connection: keep-alive

此外,Response Cookies当我使用Chrome开发者工具的"网络"标签检查流量时,我可以看到cookie .但是,我看不到在"应用程序"选项卡下设置的cookie Storage/Cookies.我没有看到任何CORS错误,所以我假设我错过了其他的东西.

有什么建议?

更新I:

我正在使用React-Redux应用程序中的请求模块/signin向服务器上的端点发出请求.对于服务器我使用快递.

快递服务器:

res.cookie('token', 'xxx-xxx-xxx', { maxAge: 86400000, httpOnly: true, domain: 'localhost:3000' })

在浏览器中请求:

request.post({ uri: '/signin', json: { userName: …

authentication cookies localhost http-headers cors

35
推荐指数
4
解决办法
4万
查看次数

Set-Cookie 标头无法跨域工作

我在一个网站上https://aaa.shared.com。该网站(称之为)向 url (网站)A发送请求并接收具有以下标头的响应:xhrhttps://zzz.shared.com/some/pathZ

access-control-allow-credentials: true
access-control-allow-origin: aaa.shared.com
set-cookie: foo=bar; expires=Fri, 01 Jan 2100 00:00:00 GMT; path=/; secure; samesite=none; httponly
Run Code Online (Sandbox Code Playgroud)

(我按照这个问题的答案添加access-control标题)

现在,我期望的是,每当我同时在 A 或 Z 上时,每当请求发送到Z(跨源或同源,重要的是请求的 URL)时,浏览器都会添加 cookie,但事实并非如此。 t!此外,我看不到它在浏览器开发人员工具(F12 -> 应用程序 -> Cookies)中设置。我正在使用 Chrome,但目标是跨浏览器解决方案。

我缺少什么?我发现很难找到一些关于Set-Cookie请求不同来源时标头如何工作的详细信息。

编辑:rowan_z最初建议替换samesite=laxsamesite=none,因为这个问题的第一个版本中的 A 和 Z 是完全独立的域(仅共享.com部分)。我尝试了一下,但没有帮助。但现在我意识到它们实际上被视为SameSite,因为它们位于shared.com域的不同子域上。所以现在我相信这samesite=lax在这里也应该起作用。

更新:最后,我只是将应用程序移动aaa.shared.com到具有某个路径的同一子域下zzz.shared.com/aaa/path,因为处理 cookie 和 CORS 确实很困难。此外,将其配置为使用localhost会增加额外的复杂性。

cookies http cross-domain cors

5
推荐指数
1
解决办法
4064
查看次数