【问题标题】:Laravel - Delete Cookie in MiddlewareLaravel - 在中间件中删除 Cookie
【发布时间】:2020-07-20 15:34:58
【问题描述】:

我的项目中有一个中间件,可以调用每个请求。它将检查 Request 是否有特定的 cookie,然后删除另一个 cookie。但似乎 Cookie 在响应中返回之前不会被遗忘或设置在 Laravel 中。就像是 return response('view')->withCookie($cookie); 这在中间件中是不可能的。

我也试过Cookie::queue(Cookie::forget('myCookie')); 什么也没发生,cookie 显示在我的浏览器中。

这是我的中间件句柄方法:

public function handle(Request $request, Closure $next)
{
    if (! $request->cookie('clear_token')) {
        cookie()->forget('access_token');                 # not worked
        Cookie::queue(Cookie::forget('access_token'));    # not worked
    }

    return $next($request);
}

【问题讨论】:

    标签: laravel laravel-5 cookies


    【解决方案1】:

    您也可以在中间件中更改响应:

    https://laravel.com/docs/5.0/middleware

    <?php namespace App\Http\Middleware;
    
    class AfterMiddleware implements Middleware {
    
        public function handle(\Illuminate\Http\Request $request, \Closure $next)
        {
            $response = $next($request);
    
            // Forget cookie
    
            return $response;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-12
      • 2021-12-08
      • 2014-07-03
      • 1970-01-01
      • 2013-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多