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

我正在使用根据域选择内容的中间件,但只有其中一个会话被存储。想法不是他们之间的共享会话。每个域都必须有它的会话。


问题的例子是 CSRF 令牌在每次重新加载时刷新。


我尝试为每个域(cookie 名称、路径、域)设置配置并尝试过 cookie、文件和数据库。这些都没有奏效。


部分中间件代码:


config([

    'session.domain' => $domain,

    'session.cookie' => $slugDomain . '_session',

    'session.path' => '/' . $slugDomain

]);


斯蒂芬大帝
浏览 139回答 2
2回答

慕莱坞森

我发现了问题。发生中间件正在修改 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();
打开App,查看更多内容
随时随地看视频慕课网APP