我是 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
];
}
但是,如果管理員用戶停用了用戶,并且您的會話處于活動狀態,那么他應該為他的下一個請求做什么?, 將其重定向到應用程式之外
我讀過它,但我覺得我已經飽和了,我不知道從哪里開始
uj5u.com熱心網友回復:
您可以撰寫一個中間件,將用戶重定向到顯示其帳戶已停用的頁面。
創建中間件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回傳視圖的路由,讓用戶知道他們的帳戶已被禁用。
將中間件添加到 App/Http/Kernel.php 中的“網路”堆疊
\App\Http\Middleware\EnsureActiveState::class,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/458989.html
