注销禁用的用户 - 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,
我是 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,