Laravel 5注销特定用户

God*_*ftw 2 php laravel laravel-5

在我的laravel 5应用程序中,有一个功能允许具有admin角色的用户重置任何非管理员的密码,但是这并不会强制该用户注销并再次登录.一旦密码更改,我该如何强制用户注销?我没有对中间件进行任何更改来验证用户或任何东西.

Mar*_*łek 10

我不知道它是否会起作用,但您可以尝试:

// get current user
$user = Auth::user();

// logout user
$userToLogout = User::find(5);
Auth::setUser($userToLogout);
Auth::logout();

// set again current user
Auth::setUser($user);
Run Code Online (Sandbox Code Playgroud)


Cla*_*ing 5

我认为最快的解决方案是向用户数据库表添加一个标志,例如一个布尔列,to_logout并在 Auth 中间件中添加类似此代码的内容。

$user = Auth::user();

if($user->to_logout){
    Auth::logout();
    $user->update(['to_update' => 0]);

    return redirect('/');
}
Run Code Online (Sandbox Code Playgroud)

  • 我不认为这种方法会破坏用户的所有会话(例如,如果他同时登录电脑和移动设备) (2认同)