Laravel记得我一直都在

时间:2014-12-16 16:50:50

标签: php authentication laravel laravel-4

我正在使用 Laravel 4.2 ,我想让用户决定是否要在PC上记住他们的登录信息。所以我的登录表单如下所示:

enter image description here

勾选复选框后,帖子字段将显示'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

2 个答案:

答案 0 :(得分:3)

尝试将expire_on_close更改为true中的config/session.php。 Laravel应该在您关闭浏览器时清除会话。

答案 1 :(得分:0)

你确定记得我是一个复选框吗?它看起来像是截图中提交按钮的一部分,因此无论如何都可以触发它。

最简单的方法是将dd(Input::get('remember_me'))放入你的控制器中,看看当你没有勾选记忆框时你是否仍然“开启”。