Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 未在Safari 13中为基本域设置Laravel 6会话cookie_Php_Laravel_Session_Cookies_Safari - Fatal编程技术网

Php 未在Safari 13中为基本域设置Laravel 6会话cookie

Php 未在Safari 13中为基本域设置Laravel 6会话cookie,php,laravel,session,cookies,safari,Php,Laravel,Session,Cookies,Safari,在Laravel框架中,在根域级别设置会话cookie在safari 13.0.3中不起作用,但在safari 12、Chrome和Firefox中起作用 由于未设置Cookie,因此每次页面刷新都会创建一个新会话,并且登录不起作用 除了app/session.php中的会话行为之外,我使用的是默认的laravel设置,在这里我将会话域更改为根域('.example.test'),并将会话驱动程序设置为“数据库”(遵循来自的建议) 在safari 13中,当域设置为完整url(subdomain

在Laravel框架中,在根域级别设置会话cookie在safari 13.0.3中不起作用,但在safari 12、Chrome和Firefox中起作用

由于未设置Cookie,因此每次页面刷新都会创建一个新会话,并且登录不起作用

除了app/session.php中的会话行为之外,我使用的是默认的laravel设置,在这里我将会话域更改为根域('.example.test'),并将会话驱动程序设置为“数据库”(遵循来自的建议)

在safari 13中,当域设置为完整url(subdomain.example.com),但当更改为根url(.example.com)时,会设置cookies

在Safari调试工具中,我可以看到请求头被设置和执行,但cookie从未进入存储

网络请求头/cookie:

我尝试过的事情:

  • 尝试使用和不使用驱动程序作为数据库
  • 在session.php中更改会话cookie名称、samesite行为和安全行为
  • 在会话结束域中添加斜杠,并删除第一个斜杠
  • 隐姓埋名/私人浏览模式(不会改变行为,在chrome中仍然有效,但在safari中不起作用)
  • 隔离问题并升级到最新的laravel版本(最初在5.6上注意到,在最新的6.6版本中仍在发生)
  • 关闭cookie加密

我无法在safari 13上进行测试,但我猜最近:

Domain属性指定cookie将发送到的主机。例如,如果域属性的值为“example.com”,则当向example.com、www.example.com和www.corp.example.com发出HTTP请求时,用户代理将在cookie头中包含cookie。(请注意,前导的%x2E(“.”)如果存在,将被忽略,即使不允许使用该字符,但尾随的%x2E(“.”)如果存在,将导致用户代理忽略该属性。)如果服务器忽略域属性,则用户代理将仅将cookie返回给源服务器

SESSION\u DOMAIN
设置为根域
示例。测试
,不带尾随

请注意,没有结尾的
的域在旧版本中无效,一些非常旧的浏览器可能不接受cookie。Safari 12和其他流行浏览器将接受cookie,因为:

如果显式指定的值不是以点开头,则用户代理将提供前导点


谢谢你的回复,我尝试了一下,没有领先/落后。不幸的是,它仍然不接受它。我能够在safari 13.0.3(macOS High Sierra)上进行测试,
。例如。测试
工作得非常好。客户端出现问题,禁用所有扩展,注销服务工作者(如果有),清除所有应用缓存。。。根据您发布的网络请求图像,浏览器应发送收到的cookie。非常感谢您抽出时间!知道这很可能在我这边是非常有帮助的。我相信这个被认可的答案并不能解决这个问题。我想我已经发现了一个更普遍的问题,即非tld、测试域、Safari 13和(可能)证书的子域之间没有共享Cookie。请看这里: