在 Laravel Filament 中实现自定义管理员身份验证中间件

162 阅读1分钟

创建管理员模型并迁移:

php artisan make:admin -m

更新 /config/auth 并设置您的 admin auth 防护

'guards' => [  
...  
'admin' => [  
'driver' => 'session',  
'provider' => 'admin',  
],  
],  
  
  
'providers' => [  
...  
'admin' => [  
'driver' => 'eloquent',  
'model' => env('ADMIN_AUTH_MODEL', App\Models\Admin::class),  
],  
  
  
'passwords' => [  
...  
'admin' => [  
'provider' => 'admin',  
'table' => env('AUTH_ADMIN_PASSWORD_RESET_TOKEN_TABLE', 'admin_password_reset_tokens'),  
'expire' => 60,  
'throttle' => 60,  
],

更新您的管理员模型,如下所示:

use Illuminate\Foundation\Auth\User as Authenticatable;  
  
class Admin extends Authenticatable {  
  
protected $fillable = [  
'name',  
'email',  
'password',  
];  
  
/**  
* The attributes that should be hidden for serialization.  
*  
* @var array<int, string>  
*/  
protected $hidden = [  
'password',  
'remember_token',  
];  
  
/**  
* The attributes that should be cast.  
*  
* @var array<string, string>  
*/  
protected $casts = [  
'email_verified_at' => 'datetime',  
'password' => 'hashed',  
];  
}

如果您已经由 Filament 创建了 'AdminPanelProvider.php',请按如下方式进行更新:


class AdminPanelProvider extends PanelProvider  
{  
public function panel(Panel $panel): Panel  
{  
return $panel  
->default()  
->id('admin')  
->path('admin')  
->login()  
->colors([  
'primary' => Color::Amber,  
])  
...  
->authMiddleware([  
Authenticate::class,  
])  
->authGuard('admin'); // add this  
  
  
}  
}

最后,运行: php artisan make:filament-user 设置您的第一个 Admin 用户。