authentication - 登录多个角色和不同视图后如何重定向
问题描述
我有问题重定向登录不同的视图。在我的情况下,当管理员登录重定向到仪表板管理员时,以及当用户登录重定向到用户页面时。我正在使用 laravel 8。这是我的登录控制器
protected $redirectTo = '/home';
public function redirectTo()
{
$role = Auth::user()->role;
switch ($role) {
case 'admin':
return '/admin';
break;
case 'user':
return '/user';
break;
default:
return '/home';
break;
}
}
我的中间件
{
if (!Auth::check()) // This isnt necessary, it should be part of your 'auth' middleware
return redirect('/home');
$user = Auth::user();
// echo $user;
if ($user->roles == $role)
return $next($request);
return redirect('/home');
}
我的控制器
Route::get('/', function () {
return view('auth.login');
});
我的路线
Auth::routes();
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::get('/user', [UserController::class, 'index'])->name('user')->middleware('role:user');
Route::get('/admin', [AdminController::class, 'index'])->name('admin')->middleware('role:admin');
解决方案
我猜想用户模型的角色属性是一个角色列表。而且,当您将角色列表与单个角色进行比较时,条件总是错误的。
推荐阅读
- kubernetes - Is kustomize for k8s backward chaining?
- javascript - 将变量中的数据(不在表单提交中)发送到谷歌表
- python - IndexError: list index out of range even though it works on a single file
- jenkins - How to compare dates in Jenkins pipeline
- mysql - 左连接不显示不匹配记录
- jmeter - 如何使用 jmeter 或任何工具测量聊天机器人的性能测试?
- php - 如何替换字符串中单词的所有偶数匹配项?
- python - 不明白 openpyxl 模块中 Worksheet 的 append 方法是如何工作的
- python - 在 Kivy 中显示 SVG 文件
- arduino - 如何通过串行通信正确发送和接收多个传感器的数据