注销禁用的用户 - Laravel 8

Log out a disabled user - Laravel 8

我是 Laravel 的新手,我面临以下问题。我有一个显示所有注册用户的面板(可以由管理员用户控制)。用户有一个“状态”字段,如果字段为1则可以进入系统,如果为0则不能进入系统。因此,管理员用户可以激活或停用用户。在登录中验证用户的部分已经从 LoginController:

解决了
public function username(){
    return 'username';
}

protected function credentials(\Illuminate\Http\Request $request)
{
    return [
        'username' => $request->{$this->username()},
        'password' => $request->password,
        'state' => 1
    ];
}

但是,如果管理员用户停用了一个用户,而您的会话处于活动状态,那么他应该为下一个请求做什么? ,将其重定向到应用程序之外

我读过,但我觉得我已经饱和了,我不知道从哪里开始

您可以编写一个中间件,将用户重定向到一个表明他们的帐户已被停用的页面。

创建一个中间件php artisan make:middleware EnsureActiveState

编辑如下

<?php
 
namespace App\Http\Middleware;
 
use Closure;
 
class EnsureActiveState
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (Auth::check() && Auth::user()->state==0) {
            return redirect('/disabled');
        }

        return $next($request);
    }
}

创建一个路由 /disabled,returns 一个视图让用户知道他们的帐户被禁用。

将中间件添加到 App/Http/Kernel 中的 'web' 堆栈。php

    \App\Http\Middleware\EnsureActiveState::class,