首页 > 解决方案 > 如何在一个登录表单中创建多重身份验证

问题描述

我想创建一个身份验证系统(一个表单),使管理员和学生能够访问两个不同的界面,管理员可以访问控制面板,用户可以访问主系统。另外,我想要数据库中的单独表,一个用于管理员,另一个用于学生。有没有办法做到这一点?请有任何建议以及如何做。

谢谢...

标签: laravel

解决方案


您需要更改中间件文件夹中的 redirectifauthenticated.php 文件。

我可以稍后编辑我的答案,我现在无法访问我的代码。但这个想法会奏效:

在句柄函数中:

          switch ($guard){
          case 'admin':
            if (Auth::guard($guard)->check()){
//if you are using some role package, use with auth()->user()->hasrole('admin'), depends //your package
              return redirect()->route('adminurl');
            }
            break;
          default:
            if (Auth::guard($guard)->check()){
                return redirect('/homepage');
            }
            break;
        }
        return $next($request);

在 config/auth.php 中,您还需要将管理员守卫添加到守卫部分。供应商也一样。

这对于提供者:

       'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],
        'admins' => [
            'driver' => 'eloquent',
            'model' => App\AdminModel::class,
        ],
        ]

推荐阅读