从管理面板远程销毁用户会话

Remotly destroy user session from admin panel

我正在构建一个管理面板。 我在哪里提供将用户列入黑名单的选项。 如果用户在列入黑名单时已登录,我该如何销毁他的会话。 他的会话具有以下键 - user_id、用户名、is_login。 我想将 is_login 设置为 false。 我正在与 php

合作

您可以通过 :

  • 在用户处添加字段 table blocked
  • 添加 middleware 检查用户 blocked 的值
  • if真火Auth::logout();

更多信息请查看以下文章3 Ways to Delete User in Laravel: Block, Hide or Hard-Delete?

步骤 1: 在用户 table 处创建 banned_at 列。

第 2 步:为此创建中间件 例如:CheckBanned

在CheckBanned.php中间件

public function handle ( $request, Closure $next )
{
    if ( auth ()->check () && auth ()->user ()->banned_at )
    {
        auth ()->logout ();

        $message = __ ( 'auth.banned_error' );

        return redirect ()->route ( 'login' )->with ( 'error',$message );
    }

    return $next( $request );
}

步骤 3: 添加中间件到 app/Http/Kernel.php

protected $middlewareGroups = [
        'web' => [
        ....
        ....
        \App\Http\Middleware\CheckBanned::class,
        ....
        ],
     ....
     ....
],