После нескольких часов исследования я понял, что решение довольно простое.
Все, что мне нужно было сделать, это добавить следующую функцию в nova LoginController:
protected function sendLoginResponse(Request $request)
{
$request->session()->regenerate();
$this->clearLoginAttempts($request);
$redirectPath = $this->redirectPath();
redirect()->setIntendedUrl($redirectPath);
return redirect()->intended($redirectPath);
}
Объяснение:
Эта функция реализована в trait AuthenticatesUsers.
intended
функция (член класса Redirector
) создает ответ перенаправления на основе ранее намеченного местоположения, а если не существует - на данный URL.
Если нет url.intended
во время сеанса пользователь будет перенаправлен на URL, сгенерированный LoginController::redirectPath
. Однако , если в сеансе существует запись url.intended
, нам нужно удалить ее, чтобы принудительно перенаправить пользователя на интересующий нас URL.
Единственная проблема, котораяЯ вижу, что мы теряем возможность перенаправления пользователя на ту же страницу, на которой он находился до того, как он вышел из системы.Так что это просто вопрос выбора как разработчика ...