4
我想在自定義Laravel中間件中設置cookie。我們的想法是在用戶通過任何登陸頁面訪問我的網站時設置cookie值。在Laravel自定義中間件中設置Cookie
所以我做的是我創建了一個名爲UUIDMiddleware
的中間件。我在我的路線中使用這個中間件和網絡中間件。以下是來自中間件的代碼。
if($request->hasCookie('uuid'))
{
return $next($request);
}
else
{
$uuid = Uuid::generate();
$response = new Response();
return $response->withCookie(cookie()->forever('uuid', $uuid));
}
正如你所看到的,我正在檢查cookie是否存在。如果不是,我將控制權交給下一個請求。
問題是使用return $response
設置cookie時,我無法將控制權交給下一個請求。我該如何解決這個問題?
在這種情況下會發生什麼情況是,如果未設置cookie,則會設置cookie並顯示空白屏幕。如果我刷新,我會看到帶有cookie集的網站。
必須以正確的方式使用中間件來設置cookie。我該怎麼做?
這似乎並沒有工作了。調用'$ next($ request)',不管你是否返回它,或者不打開處理方法並繼續請求。 – Chris
@Chris這是不正確的(至少對於Laravel 5.4來說)。你確定你註冊了中間件嗎? – Boyd
@博德中間件已註冊。我最後要做的是返回$ next($ request) - > withCookie()並提供我的cookie對象。實際上,除非明確定義,否則cookie不會被攜帶 – Chris