与Laravel合作,需要一个解决方案。
记住我函数的文档指出,需要将"true"传递到 Auth 方法中才能使其工作。
根据文档:
if (Auth::attempt($userData, true))
{
return Redirect::to('/');
}
这有效,但我需要检查用户是否已选择要记住其帐户。
我不确定在哪里,但有一段时间我有这个作为解决方案:
if (Auth::attempt($userData, ($data['rememberme'] == 'on') ? true : false))
{
return Redirect::to('/');
}
这不起作用,因为它没有在数据库中设置记住我的令牌。
如果选中该复选框,有关如何将 true 传递到 Auth 方法的任何指导?我确定我可以做一个基本的检查以查看值,然后设置一个 true/false 变量并将其放入方法中。但我确定一定有更好的方法吗?
您的控制器应该像这样,带有一个记住令牌变量:
public function postSignin()
{
$remember = (Input::has('remember_me')) ? true : false;
if (Auth::attempt(array('email'=>Input::get('email'), 'password'=>Input::get('password'), 'active'=>0))) {
return Redirect::to('users/signin')
->with('message','Please activate your account to log in');
}
if (Auth::attempt(array('email'=>Input::get('email'), 'password'=>Input::get('password'), 'active'=>1),$remember)) {
return Redirect::to('/')
->with('message','Thanks for signing in');
}
return Redirect::to('users/signin')
->with('message','Your Email/Password combination was incorrect');
}
将复选框输入放入表单中,作为
{{ Form::checkbox('remember_me') }}
我认为它应该有效..如果您有任何问题,请告诉我。谢谢