Auth.basi c Запрос аутентификации не отображается в Laravel 5.8 - PullRequest
0 голосов
/ 15 января 2020

Я использовал промежуточное программное обеспечение auth.basi c для некоторых cronjobs. До недавнего времени все работало нормально. Внезапно приглашение войти в систему больше не отображается, и оно немедленно отправляет меня на обычную страницу входа. Я не вносил никаких изменений в маршруты, контроллер в маршруте или файл htaccess.

В моем файле htaccess все еще есть эта строка:

    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Я определил маршрут как следует:

Route::group(['middleware' => ['auth.basic','role:admin']], function() {
    Route::get('/backup', 'ScriptController@cronjobs');
});

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

Спасибо!

Ответы [ 2 ]

0 голосов
/ 16 января 2020

Итак, я выяснил, в чем проблема. Внутри контроллера кто-то добавил эти строки:

public function __construct()
    {
        $this->middleware('auth');

        $this->middleware('role:admin');
    }

Я предполагаю, что это перезаписало промежуточное программное обеспечение auth.basi c. Теперь он снова работает, как и ожидалось!

В любом случае, спасибо.

0 голосов
/ 16 января 2020
    // Route group
    Route::group(['as'=>'admin.','prefix'=>'admin','namespace'=>'Admin','middleware'=>['auth','admin']], function (){
        Route::get('dashboard','DashboardController@index')->name('dashboard');
    });

    // admin middleware
     if(Auth::check() && Auth::user()->role->id == 1)
          {
            return $next($request);
          }else {
            return redirect()->route('login');
          }

    // RedirectIfAuthenticated.php
    if (Auth::guard($guard)->check() && Auth::user()->role->id==1)  {
              return redirect()->route('admin.dashboard');
          }else {
              return $next($request);
          }

    //  karnel.php file
    use App\Http\Middleware\Adminmiddleware;

    protected $routeMiddleware = [

    'admin'   => Adminmiddleware::class,
    ];

// LoginController 
 public function __construct()
    {
      if(Auth::check() && Auth::user()->role->id == 1)
      {
        $this->redirectTo = route('admin.dashboard');
      }
        $this->middleware('guest')->except('logout');
    }
...