elg*_*chu 6 laravel laravel-authentication laravel-8
我的 laravel 8 身份验证登录表单运行良好,但我需要为不同类型的用户创建一个新的身份验证系统,这些用户使用自己的用户名和密码存储在数据库中的另一个表中。我怎样才能做到这一点?
小智 14
您可以通过在“config/auth.php”中添加新的守卫来使用 Guard 来完成此操作。
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admin_users',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Models\User::class,
],
'admin_users' => [
'driver' => 'eloquent',
'model' => App\Models\Admin\AdminUser::class,
],
],
Run Code Online (Sandbox Code Playgroud)
在这里我创建了一个新的 Auth Guard“admin”。使用此防护,您可以尝试从不同的表登录。
对于登录尝试: 对于用户:
if (Auth::guard('web')->attempt(['email' => $request->email, 'password' =>
$request->password], $request->remember)) {
return redirect()->intended(route('home'));
}
Run Code Online (Sandbox Code Playgroud)
对于管理员:
if (Auth::guard('admin')->attempt(['email' => $request->email, 'password' =>
$request->password], $request->remember)) {
return redirect()->intended(route('admin.dashboard'));
}
Run Code Online (Sandbox Code Playgroud)