我对身份验证感到困惑,请让我纠正。
我知道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());
});
输出:
真
我关闭浏览器,然后转到localhost:8000/check
再次检查会话状态。它再次向我显示true
。
为什么会这样?
根据我目前关于身份验证的知识,我相信当且仅当我在attempt()
方法中传递第二个参数为true时才会记住登录会话。
我记得如果我这样做
Route::get('/login-remember' , function(){
$userdata = [
'email' => 'rayhan095@gmail.com',
'password' => '@@1100AAaa##'
];
Auth::attempt($userdata , true);
});
请让我正确
答案 0 :(得分:2)
记住我在remember_token
表中设置users
的值。
重新打开浏览器后,再次自动登录是一种理想的行为。对于您的问题,您可以通过设置
app/config/session.php
中更改此问题
'expire_on_close' => true,
因此当您关闭窗口时,该会话将过期。
答案 1 :(得分:1)
如果您不使用Remember Me功能,则用户将登录,直到会话不会过期。之后,用户将不再登录。
您可以将lifetime
中的config/session.php
设置为1分钟进行测试。