Laravel 5.4 - Cookie 队列

Laravel 5.4 - Cookie Queue

我正在使用 Laravel 5.4,我写了类似这样的东西:

     Cookie::queue(
        'refresh_token',
        $data->refresh_token,
        864000, // 10 days
        null,
        null,
        false,
        true // HttpOnly
    );

    return response('hello world');

返回的响应不包含 refresh_token cookie,而 return response('hello world')->withCookie(...) 包含。

Laravel 5.4 文档不再像 5.0 文档那样声明排队 cookie。 这是否意味着该功能已在 5.4 版中删除,还是我的代码有误?

为了完整起见,我使用的是 Dingo API 包并且响应是精心制作的。

感谢您的帮助。

我发现:

未为 api 个请求启用 Cookie 排队,这就是它不起作用的原因。

我必须在相应文件的中间件部分添加:

protected $middleware = [
        \App\Http\Middleware\TrustProxies::class,
        \App\Http\Middleware\CheckForMaintenanceMode::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,

        //added below line at end of the array
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
    ];

打开文件 App/Http/Kernel.phpprotected $middleware 数组中添加行 \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 如上面的代码片段所示并再次测试它现在应该可以工作.

万一有人喜欢 Google,cookie 包含无声地失败的一种方法是,如果您在其创建时明确定义域变量,而忘记删除 "http://" 从头说起吧。 OP 的情况并非如此,但这就是将我带到这里的原因。 ;)