在我的Laravel应用程序中,我按如下方式配置了路由:
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| This file is where you may define all of the routes that are handled
| by your application. Just tell Laravel the URIs it should respond
| to using a Closure or controller method. Build something great!
|
*/
Auth::routes();
Route::group(['middleware' => ['auth', 'admin']], function()
{
Route::get('/', 'DashboardController@viewIndex')->name('dashboard');
Route::get('/storage/user/pp/{user}/', 'StorageController@returnUserPicture');
Route::get('/storage/user/download/{user}/{file}', 'StorageController@downloadUserFile');
Route::get('/project/add', 'ProjectController@viewAddIndex')->name('/project/add');
Route::post('/project/add', 'ProjectController@addProject')->name('/project/add');
Route::get('/projects', 'ProjectController@viewIndex')->name('/projects');
//... all the routes that I removed at this point
Route::get('/users', 'UserController@showUsers')->name('/users');
Route::get('/logout', function(){
if(!Auth::check())
{
return redirect('/');
}
Auth::logout();
return redirect('/login');
});
});
这是我的CheckAdminPrivileges
中间件:
public function handle($request, Closure $next)
{
if(Auth::check() && Auth::user()->rank >= 3)
{
return $next($request);
}
else
{
return redirect('accessinformation')->with(...);
}
}
在未登录的情况下访问服务器上的/
时,浏览器会告诉我该页面重定向次数过多。让我来描述我真正想要的东西:
/
(即https://laravel.test.tld/)/login
/dashboard
仅限用户是管理员(即user
的排名&gt; = 3)如果不那么重定向到{{1使用数据,我可以输出给用户他们没有权限访问管理面板一般情况下,我希望分组路由下的所有路由只能由管理员访问, IF USER NOT ADMIN THEN 重定向到/accessinformation
数据,以便我可以输出给用户他们没有权利访问这条特定的路线(路线的名称等并不重要)。
我已经用我所拥有的东西做了一个起点,但显然这不是特技,因为它仍然会输出重定向错误。
期待看到解决方案。
编辑:即使删除除/accessinformation
以外的所有路由并清除路由缓存也无法解决主要问题(页面重定向过多次访问Auth::routes()
)