当用户访问 Laravel 中的网站时创建永久 cookie 的最佳方式



>我正在寻找创建用户访问网站时不会过期的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' => AppHttpMiddlewareSetUserCookie::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);

索取文档

最新更新