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.php
在 protected $middleware
数组中添加行 \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
如上面的代码片段所示并再次测试它现在应该可以工作.
万一有人喜欢 Google,cookie 包含无声地失败的一种方法是,如果您在其创建时明确定义域变量,而忘记删除 "http://" 从头说起吧。 OP 的情况并非如此,但这就是将我带到这里的原因。 ;)
我正在使用 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.php
在 protected $middleware
数组中添加行 \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
如上面的代码片段所示并再次测试它现在应该可以工作.
万一有人喜欢 Google,cookie 包含无声地失败的一种方法是,如果您在其创建时明确定义域变量,而忘记删除 "http://" 从头说起吧。 OP 的情况并非如此,但这就是将我带到这里的原因。 ;)