我的 laravel 8 身份验证登录表单运行良好,但我需要为不同类型的用户创建一个新的认证系统,这些用户使用自己的用户名和密码存储在另一个表的数据库中。我怎样才能做到这一点?
最佳答案
您可以通过在“config/auth.php”中添加一个新的守卫来使用守卫来做到这一点。
'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,
],
],
我在这里创建了一个新的 Auth Guard“admin”。使用此守卫,您可以尝试从不同的表登录。
对于登录尝试: 对于用户:
if (Auth::guard('web')->attempt(['email' => $request->email, 'password' =>
$request->password], $request->remember)) {
return redirect()->intended(route('home'));
}
对于管理员:
if (Auth::guard('admin')->attempt(['email' => $request->email, 'password' =>
$request->password], $request->remember)) {
return redirect()->intended(route('admin.dashboard'));
}
关于laravel - 使用 2 个不同的表登录身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66694187/