【发布时间】:2020-01-10 07:08:10
【问题描述】:
从 admin.example.com 向 example.com 发送请求后,我在响应中收到错误 419,反之亦然。
我在 config/session.php 中将 'domain' => env('SESSION_DOMAIN', null), 更改为 'domain' => '.example.com',,但这似乎没有任何改变。
admin.example.com CSRF 代码:
. . .
</head>
<body>
{!! csrf_field() !!}
@include('_nav')
. . .
我希望响应是与请求相关的 JSON,但实际上我得到了一个 Laravel HTML 响应,上面写着“页面已过期”。我生成的 CSRF 令牌显然有问题。
请求:
【问题讨论】:
-
你改成
'domain' => '.example.com'后清除浏览器cookie了吗? -
是的,我在更改后清除了 cookie。所有域都是 cookie 中的“.example.com”。
-
能否发一张chrome开发工具中
application下cookies标签的截图? -
这是 cookie:imgur
-
发现不是CSRF token的原因,是子域发出请求时,页面无法访问cookies。我该如何解决?我返回
dd($_COOKIE)作为响应,它显示[]。
标签: php laravel routes subdomain csrf