Маршрут перенаправления промежуточного ПО не работает в Laravel - PullRequest
0 голосов
/ 25 мая 2020

Я пытаюсь создать промежуточное ПО, которое, если пользователь был отключен, он не мог получить доступ к веб-сайту. Проблема, с которой я столкнулся, заключается в том, что вместо перехода к маршруту входа в систему он продолжает попытки go на домашний маршрут.

Мое промежуточное ПО

public function handle($request, Closure $next)
{
    if(request()->user()->enabled == true)
    {
        return $next($request);
    }else{
        return redirect()->route('login')->with('error', 'Your account has been disabled.');
    }
}

Мой домашний маршрут

Route::get('/home', 'HomeController@index')->name('home')->middleware('enabled');

1 Ответ

0 голосов
/ 25 мая 2020

Для того, чтобы промежуточное ПО работало должным образом, вы должны выйти из системы, чтобы промежуточное ПО выглядело, как показано ниже:

public function handle($request, Closure $next)
{
    if(request()->user()->enabled == true)
    {
        return $next($request);
    }else{
        request()->user()->logout() // logout the user
        return redirect()->route('login')->with('error', 'Your account has been disabled.');
    }
}
...