请记住我的laravel5.2

时间:2017-04-22 02:35:43

标签: laravel laravel-5.2 remember-me

大家好我想要记住我的复选框,我想将用户信息保存到cookie中,以便下次尝试登录时,他会在我尝试使用的字段中找到用户名和密码:

$rememberMe = false;

if(isset($req->remember_me)) {
    $rememberMe = true;
}

if(Sentinel::authenticate($req->all(), $rememberMe)) {
    $slug = Sentinel::getUser()->roles()->first()->slug();
}

设置了Cookie,我在Chrome设置中看到了它,但它没有按照我的预期进行

我正在使用 laravel 5.2

2 个答案:

答案 0 :(得分:0)

您可以使用Cookie

cookie,是用户浏览该网站时从网站发送并存储在用户的网络浏览器中的一小段数据。每次用户加载网站时,浏览器都会将cookie发送回服务器,以通知网站用户之前的活动 要创建:

$response->withCookie(Cookie::make('name', 'value', $minutes));

要检索

$value = Cookie::get('name');

您的问题是不记得用户登录..问题是如何根据保存的身份验证信息填充输入。如果在加载页面时在输入值属性中打印身份验证值,则可以执行此操作。

larval Cookies文档

Laravel也有自己实现的“记住我”

if (Auth::attempt(array('email' => $email, 'password' => $password), true))
{
// The user is being remembered...
}

if (Auth::viaRemember())
{
//
}

有关https://laravel.com/docs/5.4/authentication#remembering-users

的更多信息

答案 1 :(得分:0)

有两件事需要注意: 1)您必须将bool值作为第二个参数传递给方法,确保在将其传递给方法之前将其强制转换。 - 在你的代码中,它是完美的

$credentials = $req->only('LOGINNAME', 'PASSNAME')
if(Sentinel::authenticate($credentials , $req->has('remember_me'))){
 //Other stuff
}

2)您可以通过确保使用密钥cartalyst_sentinel

设置Cookie来验证其是否有效

首先按照1改变选项然后检查2)选项,这可能是你的答案。