分组路由中的Laravel重定向错误

时间:2018-02-14 12:00:16

标签: php laravel

在我的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(...);
    }
}

在未登录的情况下访问服务器上的/时,浏览器会告诉我该页面重定向次数过多。让我来描述我真正想要的东西:

  1. 用户访问域名/(即https://laravel.test.tld/
  2. 用户尚未登录? - &GT;重定向到/login
  3. 用户已登录? - &GT;重定向到/dashboard 仅限用户是管理员(即user的排名&gt; = 3)如果不那么重定向到{{1使用数据,我可以输出给用户他们没有权限访问管理面板
  4. 一般情况下,我希望分组路由下的所有路由只能由管理员访问, IF USER NOT ADMIN THEN 重定向到/accessinformation数据,以便我可以输出给用户他们没有权利访问这条特定的路线(路线的名称等并不重要)。

    我已经用我所拥有的东西做了一个起点,但显然这不是特技,因为它仍然会输出重定向错误。

    期待看到解决方案。

    编辑:即使删除除/accessinformation以外的所有路由并清除路由缓存也无法解决主要问题(页面重定向过多次访问Auth::routes()

0 个答案:

没有答案