我想知道是否有適當的方法可以說我是我網站的管理員,并且用戶正在瀏覽已登錄的網站,我進入并將其帳戶狀態設置為 2(處于活動狀態)1 = Active
2 = In Active
3 = TerminatedLaravel 不會自動檢查,所以我需要創建中間件,我猜是中間件,但我不確定如何為我的 2 個不同的防護程序(管理和網絡)編寫代碼。通過我的登錄功能,我使用 laravel 的文檔來檢查狀態是否等于 1,所以我已經不必擔心他們再次登錄,但如果他們的會話已經啟動,我需要結束它,我猜在上運行一個中間件每個 HTTP 請求都會檢查并查看是否兩個或僅 1 個防護正在使用,然后檢查其狀態。如果其處于活動狀態,則不執行任何操作;如果其設置為“處于活動狀態”(2) 或“終止”(3),則我們需要將其注銷。有人可以給我一個開始嗎?
1 回答

守候你守候我
TA貢獻1802條經驗 獲得超10個贊
我個人沒有嘗試過,但總有第一次。您正走在將此代碼放入中間件中的正確道路上。
php artisan make:middleware CheckUserStatus
將新創建的中間添加到您的app/Http/kernel.php
protected $routeMiddleware = [
.
.
'status' => \App\Http\Middleware\CheckUserStatusMiddleware::class
]
在您的 CheckUserStatusMiddleware 內部
public function handle($request, Closure $next, $redirectToRoute = null)
{
if ($request->user() && $request->user()->status != 1) {
auth()->logout();
return abort(403, 'Your status is not active anymore.');
}
return $next($request);
}
最后,將中間件添加到您的路由調用中
Route::get('/', 'HomeController@index')->middleware('status');
- 1 回答
- 0 關注
- 136 瀏覽
添加回答
舉報
0/150
提交
取消