我正在使用 Laravel 4.2 ,我想让用户决定是否要在PC上记住他们的登录信息。所以我的登录表单如下所示:
勾选复选框后,帖子字段将显示'remember_me' => 'on'
。表单发布到名为sessions.store
的命名路由,其处理方式如下:
public function store()
{
// Capture input data
$input = Input::only('email', 'password');
// Validate input
$this->loginForm->validate($input);
// Login user
if (Auth::attempt($input, (Input::get('remember_me') == 'on')))
return Redirect::intended('/');
// Login error
return Redirect::back()->withInput()->withFlashError('Invalid portal account credentials provided');
}
出于某种原因,laravel会让用户保持登录状态(即您完全关闭浏览器并重新打开它,而您无需登录,您已经登录),即使他们没有勾选复选框。
知道为什么会这样吗?
更新
这是我的 sessions / create.blade.php :http://pastebin.com/raw.php?i=MbrLgg6Y
这是我的 javascript复选框帮助:http://pastebin.com/raw.php?i=R8mNrj3s
答案 0 :(得分:3)
尝试将expire_on_close
更改为true
中的config/session.php
。 Laravel应该在您关闭浏览器时清除会话。
答案 1 :(得分:0)
你确定记得我是一个复选框吗?它看起来像是截图中提交按钮的一部分,因此无论如何都可以触发它。
最简单的方法是将dd(Input::get('remember_me'))
放入你的控制器中,看看当你没有勾选记忆框时你是否仍然“开启”。