我的登录表单中有一个复选框,如果选中该复选框,我想将用户的电子邮件和密码保存在Cookie中,这样他就可以自动登录。这是我的代码部分,用于检查该复选框是否为检查并设置cookie。
if ($remember == 'on') {
$array = array(
"email" => $email,
"password" => $password
);
$time = time() + (10 * 365 * 24 * 60 * 60);
Cookie::queue('user', serialize($array), $time);
}
但是当我尝试获取cookie并将其打印出来时,它会显示“ false”。
$cookie = Cookie::get('user');
dd(unserialize($cookie));
如何获取Cookie?它显示了在inspect中设置的cookie。 检查cookie是否已设置的最佳方法是什么,以便我将用户立即重定向到个人资料视图?我必须为此编写中间件吗?
答案 0 :(得分:1)
问题是您的dd
函数调用。
当用户检索带有附加Cookie(设置cookie头)的响应时,Cookie将存储在用户的浏览器中,您可以在他发送给您的下一个请求中阅读它们。
调用dd
时,它会中断响应链并删除set-cookie
标头。
只需移除dd
并在另一条路径中写:
dd(unserialize(\Request::cookie('user')));