【发布时间】:2018-03-07 12:06:13
【问题描述】:
我正在寻找创建在用户访问网站时不会过期的 cookie 的最佳方法(cookie 包含 uuid)。我正在使用 Laravel,据我所知,最好的方法似乎是使用中间件。请任何人提出其他建议,以及任何代码示例。
谢谢
【问题讨论】:
-
到目前为止你尝试过什么?显示一些代码示例。
-
您是否想将其永久存储在客户端的浏览器中?
我正在寻找创建在用户访问网站时不会过期的 cookie 的最佳方法(cookie 包含 uuid)。我正在使用 Laravel,据我所知,最好的方法似乎是使用中间件。请任何人提出其他建议,以及任何代码示例。
谢谢
【问题讨论】:
我会为此使用中间件,创建一个 SetUserCookie 中间件或类似的:
class SetUserCookie {
public function handle($request, Closure $next) {
$response = $next($request);
return $response->withCookie(cookie()->forever('uuid', Str::uuid()));
}
}
在内核中注册中间件:
protected $routeMiddleware = [
...
'setUserCookie' => \App\Http\Middleware\SetUserCookie::class,
...
];
您还可以使用队列方法将 cookie 附加到响应:
$minutes = 60 * 24 * 365 * 10; // ten years should be long enough
Cookie::queue(Cookie::make('uuid', Str::uuid(), $minutes));
Cookie::queue('uuid', Str::uuid(), $minutes);
【讨论】: