0

按照文档,我在本地虚拟主机(indgo.dev)上创建了一个“永远”(5 年)的 cookie。

所以这:

 $cookie = Cookie::forever('hash',$project['hash']);
  dd($cookie);

输出:

object(Symfony\Component\HttpFoundation\Cookie)#436 (7) {
  ["name":protected]=>
  string(4) "hash"
  ["value":protected]=>
  string(360) "eyJpdiI6IlNJcUJZSElRTlwvQ0dJU3Z4dE44VFwvYjJ3U3lpckRZY2xsV3NlWTJ5VHJ1dz0iLCJ2YWx1ZSI6IkFHeFJGOXhjSzZxTkhZWGpIMiszUWZ5eXBUT2xuMTZFalpXdVZ3VW1CYUh1SmxKZUNPMk1rSFhONFk4REVkMzBtWlluWVhWU21uVHJXMDllKytmYm5idk5IVTNcLzIrUEgyZ3dsVllVTERyeTROU1lKUHUwb1ZpRll2V1JmU0Z4bSIsIm1hYyI6Ijc1YzcyODlkOTU0MGQ3ZjEyMDJhNjk5ZWNhOWY2ZWNhMGRhNzU4NjZiOTAwNGUzMjY1MzI2YjhhNGZjMWVhMzgifQ=="
  ["domain":protected]=>
  NULL
  ["expire":protected]=>
  int(1523085636)
  ["path":protected]=>
  string(1) "/"
  ["secure":protected]=>
  bool(false)
  ["httpOnly":protected]=>
  bool(true)
}

但是,当我尝试在不同的请求中获取 cookie 时:

$hash = Cookie::has('hash');
    dd($hash);

我得到false(或者null如果我使用该get方法)

使用 Chrome 开发工具,我发现 cookie 确实没有显示。列出的只有laravel_payloadlaravel_session

更新:当我登录时,班级创建一个新的remember_mecookieAuth

4

2 回答 2

5

您没有在响应中发送 cookie。尝试

$cookie = Cookie::forever('hash',$project['hash']);
return Response::make()->withCookie($cookie);

在第一个请求上,然后尝试获取 cookie。

于 2013-04-08T16:16:14.160 回答
0

我遇到了 cookie 的问题。以防万一 Laravel 4 新手,如果您需要设置 cookie,您需要将 cookie 发送到任何响应。在我的情况下,我正在显示一个启动屏幕,并且需要在用户访问该站点时进行设置和检查。初始屏幕具有以下内容:

if(Input::get('splash') || Cookie::get('splash')) {
    $cookie = Cookie::forever('splash', 'checked');
    return Redirect::route('home')->withCookie($cookie);
} else {
    //show the splash screen with the form which has the splash = 1 as a hidden input
}
于 2013-05-22T07:50:05.823 回答