我想让用户只有 1 次登录。我已经在数据库中用布尔数据类型制作了active
列。
然后,我使用此Auth::user()->active = true;
将数据插入数据库,但当我尝试登录时似乎不起作用。
这是我的AuthController
:
protected function authenticated(){
if (!Auth::user()->active) {
if(Auth::user()->role == 'Admin') {
Auth::user()->active = true;
return redirect('/listUser');
} elseif (Auth::user()->role == 'CCO'){
Auth::user()->active = true;
return redirect('/eCalendar');
}
Auth::user()->active = true;
return redirect('/eCalendars');
} else{
Auth::logout();
return redirect('/login');
}
}
public function logout()
{
Auth::user()->active = false;
Auth::logout();
return redirect('/login');
}
如果我尝试登录,数据库中的active
列不会更改。但是,如果注销成功更改为false
。
您需要在将属性值更改为
Auth::user()->active = true;
Auth::user()->save();
你必须通过调用方法update((来保存更改
protected function authenticated(){
if (!Auth::user()->active) {
if(Auth::user()->role == 'Admin') {
Auth::user()->active = true;
Auth::user()->update();
return redirect('/listUser');
} elseif (Auth::user()->role == 'CCO'){
Auth::user()->active = true;
Auth::user()->update();
return redirect('/eCalendar');
}
Auth::user()->active = true;
Auth::user()->update();
return redirect('/eCalendars');
} else{
Auth::logout();
return redirect('/login');
}
}
public function logout()
{
Auth::user()->active = false;
Auth::user()->update();
Auth::logout();
return redirect('/login');
}