如果Laravel 5.4中每个用户一次超过1个会话,则自动注销

时间:2018-05-09 16:00:23

标签: sql laravel-5 laravel-5.2

我尝试在多个会话发生时自动注销。这意味着如果有一个用户的会话,该用户无法一次从其他用户登录。我怎样才能做到这一点。哪个文件应该更改? 提前致谢

1 个答案:

答案 0 :(得分:0)

在执行make:auth命令后的Laravel 5.2中,您可以在public function authenticated(Request $request,User $user)中创建方法:AuthController.php,在该方法中,您可以在登录后执行所需操作。对于每个用户的单个会话,我们将添加到顶部的AuthController:

use Illuminate\Http\Request;
use Auth;

并添加功能:

public function authenticated(Request $request,User $user){
    $previous_session = $user->session_id;

    if ($previous_session) {
        \Session::getHandler()->destroy($previous_session);
    }

    Auth::user()->session_id = \Session::getId();
    Auth::user()->save();
    return redirect()->intended($this->redirectPath());
}

不要忘记使用session_id列添加用于更改users表的迁移。