err_too_many_redirects и эта страница не работает в моем промежуточном программном обеспечении - PullRequest
0 голосов
/ 03 июня 2019

У меня есть два пользователя, у меня две роли: обычный пользователь и пользователь-должник. Я хочу, чтобы пользователь должника не мог получить доступ к обычной панели пользователя. Я создал панель управления должниками тоже. Ниже я попробовал. Как я могу заархивировать это.

это мой web.php

////// User debtors Authentications ///////////
   Route::middleware(['debtors'])->group(function(){//debtors routes will goes here
      Route::get('/debtors/home', 'HomeController@kfsdebtors_form');
      Route::get('/debtors/kfsdebtors_form', 'HomeController@defaultersdashboard');
      Route::get('/debtors/applications_dashboard', 'HomeController@applications_dashboard');
      Route::get('/debtors/manage_debt', 'HomeController@manage_debt');
      Route::post('/debtors/manage_debt', 'HomeController@transaction');
      Route::get('/debtors/manage_debt', 'HomeController@defaulters');
      Route::get('/debtors/view_transaction', 'HomeController@view_transaction');
      Route::post('/debtors/view_transaction', 'HomeController@view_transaction');
      // Route::get('/user/{data}', 'UserController@getData');
        // Route::post('/user/{data}', 'UserController@postData');
   });
   //  Route::group(['middleware' => 'debtors'], function () {
   //      Route::get('/debtors/home/kfsdebtors_form', 'HomeController@kfsdebtors_form');
   //      Route::get('/debtors/applications_dashboard', 'HomeController@applications_dashboard');
   //      Route::get('/debtors/manage_debt', 'HomeController@manage_debt');
   // });
////// User normal user Authentications ///////////
    Route::middleware(['normal_user'])->group(function(){
       Route::get('/home', 'HomeController@index');
       Route::get('/home', 'HomeController@balance');
    });

    // Route::group(['middleware' => 'is.admin'], function () {
    //     Route::get('/user/{data}', 'UserController@getData');
    //     Route::post('/user/{data}', 'UserController@postData');
    // });
Route::get('/register_sawmill', 'Auth\register_sawmill@create')->name('register_sawmill');
Route::post('/register_sawmill', 'Auth\register_sawmill@register');
Route::get('logout', 'Auth\LoginController@logout', function () {

это мое промежуточное ПО для debtors.php

    public function handle($request, Closure $next)
    {
        if (Auth::user()->debtor == 1)
        {
            return $next($request);
        }

        return redirect()->guest('/debtors/home');
    }
}

это связующее ПО normal_user.php

    public function handle($request, Closure $next)
    {
        // if(Auth::check()) {
        //   if(Auth::user()->debtor == 0) {
        //     return $next($request);
        //   }
        // }

        // return redirect('/home');
        // if(!Auth::check() || Auth::user()->debtor != '0'){
        //     return redirect()->route('/debtors/home');
        // }
        // return $next($request);


        if(Auth::check()) {
          if(Auth::user()->debtor == 0) {
            return $next($request);
          }
        }

        return redirect('/debtor/home');
    }
```

1 Ответ

0 голосов
/ 03 июня 2019

Я думаю, вы должны изменить return redirect('/home');

и перенаправить на простую страницу, например return redirect('/register_sawmill');

проблема, я думаю, заключается в том, что обычное пользовательское промежуточное ПО проверяет, прошел ли пользователь аутентификацию, если нет, то оно должно перенаправить на некоторую страницу, которая не поддерживается промежуточным ПО

...