Laravel 5.4 - Cookie 队列
Posted
技术标签:
【中文标题】Laravel 5.4 - Cookie 队列【英文标题】:Laravel 5.4 - Cookie Queue 【发布时间】:2017-12-24 03:48:39 【问题描述】:我使用的是 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 包并制作了响应。
感谢您的帮助。
【问题讨论】:
小心,“10天”的评论不好。该值以分钟而不是秒为单位传递。要在 10 天内到期,您需要 10*24*60 = 14400 【参考方案1】:我发现:
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.php
在protected $middleware
数组中添加\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
行,如上面代码sn-p所示,再次测试它现在应该可以工作了。
【讨论】:
你救了我的命 :) 壮观的答案!【参考方案2】:如果有人喜欢 Google首先它。 OP 并非如此,但正是它把我带到了这里。 ;)
【讨论】:
以上是关于Laravel 5.4 - Cookie 队列的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5.4 和数据表 - Ajax - 保存/发布数据 - 服务器端
带有 Laravel 5.4 后端的 Vuejs 2,发布(未经授权)错误
Laravel 5.3 到 5.4 (mPdf - niklasravnsborg/laravel-pdf ) 升级问题