Я пытаюсь защитить маршрут, используя два промежуточных продукта, чтобы и эксперт, и пользователь могли получить доступ к одному и тому же маршруту, но как только пользователь пытается получить доступ к маршруту, он вышел из системы.
Я создалдва промежуточных продукта для эксперта и пользователя и защита маршрута с помощью этих промежуточных продуктов.
Web.php
Route::group(['middleware' => ['expert','user']], function () {
Route::post('/showForm','UserController@showFormFilled');
});
Пользовательское промежуточное ПО
public function handle($request, Closure $next)
{
//////////////////// check if user is logged in ///////////////////
if(Auth::check())
{
////////////////// check user role id //////////////////////////
if(auth()->user()->role_id == 3)
{
return $next($request);
}
else if (auth()->user()->role_id==2)
{
return redirect('/expert');
}
}
else
{
return redirect('/login');
}
}
Экспертное среднееware
public function handle($request, Closure $next)
{
if(Auth::check()){
if(auth()->user()->role_id == 2)
return $next($request);
else if (auth()->user()->role_id==3)
return redirect('/dashboard');
}
else {
return redirect('/login');
}
}
Оба пользователя должны иметь доступ к одному и тому же маршруту.