Auth记住系统无法按预期工作

时间:2018-01-06 08:01:41

标签: laravel

我对身份验证感到困惑,请让我纠正。

我知道Laravel有一个记住我的登录系统。

要创建会话,我们使用Auth::attempt()

这是我试图让我理解的一个例子。

首先我登录时不记得会话

Route::get('/login' , function(){
    $userdata = [
        'email'     => 'rayhan095@gmail.com',
        'password'  => 'my-secret-password'
    ];
    Auth::attempt($userdata);
});

然后我检查我的会话状态

Route::get('check' , function(){
    dd(Auth::check());
});
  

http://localhost/check

输出:

  

我关闭浏览器,然后转到localhost:8000/check再次检查会话状态。它再次向我显示true

为什么会这样?

根据我目前关于身份验证的知识,我相信当且仅当我在attempt()方法中传递第二个参数为true时才会记住登录会话。

我记得如果我这样做

Route::get('/login-remember' , function(){
    $userdata = [
        'email'     => 'rayhan095@gmail.com',
        'password'  => '@@1100AAaa##'
    ];
    Auth::attempt($userdata , true);
});

请让我正确

2 个答案:

答案 0 :(得分:2)

记住我在remember_token表中设置users的值。 重新打开浏览器后,再次自动登录是一种理想的行为。对于您的问题,您可以通过设置

app/config/session.php中更改此问题
'expire_on_close' => true,

因此当您关闭窗口时,该会话将过期。

答案 1 :(得分:1)

如果您不使用Remember Me功能,则用户将登录,直到会话不会过期。之后,用户将不再登录。

您可以将lifetime中的config/session.php设置为1分钟进行测试。