使用中间件保护路由 Laravel
Protect routes with middleware Laravel
我在我的应用中实现了中间件角色和权限控制,但我不明白为什么它只允许我定义一个'/'路由。第二个仍然指向“/home”,即使我重写了 AuthController redirectTo 变量。
我的路线:
Route::group(['middleware' => 'role:user'], function()
{
Route::get('/', 'ScoresController@user');
});
Route::group(['middleware' => 'role:admin'], function()
{
Route::get('/', 'PagesController@home');
});
在任何情况下,身份验证后用户角色重定向到“/home”。
就像西蒙说的那样,您的第二条路线将覆盖第一条路线,您可以加载另一个控制器,通过 redirect() 将您重定向到另一个页面
或者把它写成一条路线。
可能看起来像这样:
Route::get('/', function(){
$user = Auth::user();
if($user->is('admin') {
return redirect('admin');
}else{
return redirect('user');
}
});
Route::get('admin', ['middleware' => 'role:admin', 'uses'=> 'PagesController@home']);
这只是众多可能性中的一种,希望对您有所帮助。
我在我的应用中实现了中间件角色和权限控制,但我不明白为什么它只允许我定义一个'/'路由。第二个仍然指向“/home”,即使我重写了 AuthController redirectTo 变量。
我的路线:
Route::group(['middleware' => 'role:user'], function()
{
Route::get('/', 'ScoresController@user');
});
Route::group(['middleware' => 'role:admin'], function()
{
Route::get('/', 'PagesController@home');
});
在任何情况下,身份验证后用户角色重定向到“/home”。
就像西蒙说的那样,您的第二条路线将覆盖第一条路线,您可以加载另一个控制器,通过 redirect() 将您重定向到另一个页面 或者把它写成一条路线。
可能看起来像这样:
Route::get('/', function(){
$user = Auth::user();
if($user->is('admin') {
return redirect('admin');
}else{
return redirect('user');
}
});
Route::get('admin', ['middleware' => 'role:admin', 'uses'=> 'PagesController@home']);
这只是众多可能性中的一种,希望对您有所帮助。