首页 > 解决方案 > Laravel 5.1 与 Set-Cookie

问题描述

我对 Laravel 5.1 有疑问。当我们在标题中添加 Set-Cookie: HttpOnly;Secure 时,我们无法再继续使用我们的 api。我们不能使用 Laravel 的 api。我认为这已经在新版本中修复了。但我想在 Laravel 5.1 中解决这个问题,我不知道该怎么做才能让它工作。

标签: laravel

解决方案


我现在想通了是什么问题。我们在服务器中设置“Set-cookie: httponly;secure”标头,因此 xsrf-token 被删除。我认为这是导致我们无法继续提交表格的原因。所以我在我的 VerifyCsrfToken.php 中添加了以下代码

protected function addCookieToResponse($request, $response)
{
    $response->headers->setCookie(
        new Cookie('XSRF-TOKEN',
            $request->session()->token(),
            time() + 60 * 120,
            '/',
            null,
            config('session.secure'),
            true)
    );

    return $response;
}

问题仍然存在,我们仍然无法继续提交表单。当我们提交表单时,我仍然收到 302 Found。

这些是现在的 2 Set-Cookie 标头:

Set-Cookie: XSRF-TOKEN=<token>; expires=Thu, 07-Feb-2019 07:38:41 GMT; Max-Age=7200; path=/; secure; HttpOnly

Set-Cookie: laravel_session=<session>; expires=Thu, 07-Feb-2019 07:38:41 GMT; Max-Age=7200; path=/; secure; HttpOnly

但是为什么我们仍然不能提交表单呢?


推荐阅读