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,
],
]
推荐阅读
- azure - 如何通过 Azure 策略审核诊断设置中的日志记录类别?
- pentaho - Pentaho 数据集成
- flutter - 将 Firebase 云消息传递功能与 main.dart 分开的 Flutter 问题
- ansible - 在 Ansible playbook 中使用 inventory_file 和一个空的清单文件
- php - Rabbitmq 中有队列池吗?
- mysql - 谷歌云中的Mysql实例 - 通信链接失败
- python - 使用 SQL Server 提高 pandas 的 to_sql() 性能
- python - 没有边的 Networkx 节点具有度数
- python - Numba 可以用来继承 Keras 层吗?
- javascript - JavaScript 按钮点击事件