【发布时间】:2021-12-18 21:16:54
【问题描述】:
我在 HTTP set-cookie 主题上纠结了一段时间,但没有取得任何进展。我的情况如下:
我的 API 托管在 api.mysite.com 上,并且我在 admin.mysite.com 上有一个管理仪表板。我从 admin.mysite.com 向 api.mysite.com/login 发出 POST 请求以验证凭据并返回会话 cookie。 cookie配置为:
session_set_cookie_params([
'lifetime' => 36000,
'path' => '/',
'domain' => '.mysite.com.co',
'secure' => 1,
'httponly' => 0,
'samesite' => 'None'
]);
响应似乎还可以:
HTTP/1.1 200 OK
Date: Thu, 04 Nov 2021 16:22:57 GMT
Server: Apache/2.4.41 (Ubuntu)
Strict-Transport-Security: max-age=63072000
Access-Control-Allow-Origin: https://admin.mysite.com
Access-Control-Allow-Headers: x-requested-with, Content-Type, origin, accept, authorization, client-security-token, Cache-Control, X-Mashape-Authorization
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Expose-Headers: Content-Security-Policy, Location
Access-Control-Max-Age: 1000
Upgrade: h2
Connection: Upgrade, Keep-Alive
Set-Cookie: PHPSESSID=hash; expires=Fri, 05-Nov-2021 02:22:57 GMT; Max-Age=36000; path=/; domain=.mysite.com; secure; SameSite=None
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Vary: Accept-Encoding
Content-Encoding: gzip
Access-Control-Allow-Credentials: true
Content-Length: 549
Keep-Alive: timeout=5, max=100
Content-Type: text/html; charset=UTF-8
但是 cookie 没有被存储。但是,如果我从 api.mysite.com/testCookies 向 api.mysite.com/login 发出请求,它就会被存储,所以这似乎是一个域/站点问题(可能是 CORS?)
我将不胜感激有关此主题的任何指导。
【问题讨论】:
-
我们可以假设您的 PHP 中的
mysite.com.co是一个错字吗?因为这不适用于mysite.com域。请使用开发工具或插件检查您的浏览器 cookie 存储以查看其存储方式。如果您明确包含该域,它应该适用于该域的所有子域,如您所愿。
标签: php xmlhttprequest http-headers session-cookies