为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 会话不会存储在多个域中

Laravel 会话不会存储在多个域中

PHP
斯蒂芬大帝 2021-06-29 13:10:30
我正在使用根据域选择内容的中间件,但只有其中一个会话被存储。想法不是他们之间的共享会话。每个域都必须有它的会话。问题的例子是 CSRF 令牌在每次重新加载时刷新。我尝试为每个域(cookie 名称、路径、域)设置配置并尝试过 cookie、文件和数据库。这些都没有奏效。部分中间件代码:config([    'session.domain' => $domain,    'session.cookie' => $slugDomain . '_session',    'session.path' => '/' . $slugDomain]);
查看完整描述

2 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

我发现了问题。发生中间件正在修改 URI,但在 URI 末尾有两个竖线的情况。控制器正在正常执行,但由于 URI 会话末尾的双条没有被持久化。


新代码:


//...

    $newReq = $request->duplicate();

    $newPath = '/store' . (substr($request->path(), 0, 1) === '/' ? '' : '/') . $request->path();

    $newReq->server->set('REQUEST_URI', $newPath);


    return $next($newReq);

$newPath 以前是


$newPath = '/store/' . $request->path();


查看完整回答
反对 回复 2021-07-16
  • 2 回答
  • 0 关注
  • 138 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信