我正在使用根据域选择内容的中间件,但只有其中一个会话被存储。想法不是他们之间的共享会话。每个域都必须有它的会话。问题的例子是 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();
- 2 回答
- 0 关注
- 138 浏览
添加回答
举报
0/150
提交
取消