我正在構建一個管理面板。我在哪里提供將用戶列入黑名單的選項。如果用戶在列入黑名單時已登錄,我該如何銷毀他的會話。他的會話具有以下鍵 - user_id、username、is_login。我想將 is_login 設定為 false。我正在使用 php
uj5u.com熱心網友回復:
你可以這樣做:
- 在用戶表中添加欄位
blocked - 添加
middleware檢查blocked用戶的價值 - 如果真火
Auth::logout();
有關更多資訊,請查看以下文章在 Laravel 中洗掉用戶的 3 種方法:阻止、隱藏或硬洗掉?
uj5u.com熱心網友回復:
第 1 步:在 users 表中創建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 );
}
第三步:將中間件添加到 app/Http/Kernel.php
protected $middlewareGroups = [
'web' => [
....
....
\App\Http\Middleware\CheckBanned::class,
....
],
....
....
],
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/457909.html
