Laravel 拉威尔8号-罐头盒';t在中间件中设置cookie
我正在用Laravel和Vue建造一个购物车水疗中心 Vue通过API与Laravel通信,这不是一个无状态的API,因为我使用Sanctum提供基于cookie的会话身份验证服务 对于来宾用户,我希望将购物车信息存储在cookie中。因此,我尝试通过使用以下handle()方法创建的中间件设置cookie: 我将此中间件添加到“api”和“web”组中,但无论我发出多少页面请求,它似乎都不会添加cookieLaravel 拉威尔8号-罐头盒';t在中间件中设置cookie,laravel,laravel-8,Laravel,Laravel 8,我正在用Laravel和Vue建造一个购物车水疗中心 Vue通过API与Laravel通信,这不是一个无状态的API,因为我使用Sanctum提供基于cookie的会话身份验证服务 对于来宾用户,我希望将购物车信息存储在cookie中。因此,我尝试通过使用以下handle()方法创建的中间件设置cookie: 我将此中间件添加到“api”和“web”组中,但无论我发出多少页面请求,它似乎都不会添加cookie 非常感谢您的帮助,谢谢您有什么错误吗?“您是否验证了该程序正在进入该中间件?”安德鲁感
非常感谢您的帮助,谢谢您有什么错误吗?“您是否验证了该程序正在进入该中间件?”安德鲁感谢您的回复。我试图测试中间件。当我在浏览器中打开它时,它工作正常(cookie已设置)。可能在测试中,只能使用withCookie()方法设置cookie??在这种情况下,如何测试中间件呢?我会在中间件中放置一个
dd()
,可能是多个。类似于dd(“请求Cookie:”$Request->Cookie('cart\u id'))
在返回$next($Request)之前
和if
语句中的另一个。返回$next($request)之前的dd()永远不会被调用。这意味着cookie永远不会真正被设置。你是说if()
语句中的dd()
?如果将dd()
放置在If()
外部,它会被调用吗?
public function handle(Request $request, Closure $next)
{
if(!$request->cookie('cart_id')){
$cart_id = "some value";
return $next($request)->cookie(cookie()->forever('cart_id', $cart_id));
}
return $next($request);
}