Перенаправить на исходную страницу, которая запрашивала логин в Laravel - PullRequest
0 голосов
/ 02 марта 2019

Я искал повсюду, ни один из ответов не отвечал моим потребностям.

У меня есть приложение Laravel, с различными страницами, требующими входа пользователя.

Обычное перенаправление в Laravel после входа в систему происходит на домашней странице.

Как я могу сделать перенаправление на исходную страницу, которая запросила вход в систему?

Например:

Aпользователь пытается перейти на example.com/page/1, который предназначен только для аутентифицированных пользователей.Он перенаправляется на страницу входа, отправляет форму и затем перенаправляет на домашнюю страницу.Как я могу перенаправить его обратно на example.com/page/1 или на другую страницу, с которой он пришел?

Ответы [ 3 ]

0 голосов
/ 02 марта 2019

Вы потенциально можете подключиться к методу intended() Laravel.Обычно это защищенный маршрут, к которому пользователь пытался получить доступ до того, как он был перенаправлен на страницу входа, но вы можете вручную установить для него значение, которое вы хотите.

В вашем LoginController добавьтеследующее:

public function showLoginForm()
{
    if (!session()->has('url.intended')) {
        redirect()->setIntendedUrl(session()->previousUrl());
    }

    return view('auth.login');
}

Эта команда проверит, установлен ли заданный URL-адрес, если нет, установит предыдущий URL-адрес.

0 голосов
/ 02 марта 2019

Вы можете использовать предназначенный метод для этой цели, из документов:

Предполагаемый метод на перенаправителе перенаправит пользователя на URL-адрес, к которому он пытался получить доступ доперехватывается промежуточным ПО аутентификации.Резервный URI может быть предоставлен этому методу, если предполагаемый пункт назначения недоступен.

В вашем контроллере входа добавьте следующий код:

public function authenticate(Request $request)
{
    $credentials = $request->only('email', 'password');

    if (Auth::attempt($credentials)) {
        // Authentication passed...
        return redirect()->intended('dashboard');
    }
}
0 голосов
/ 02 марта 2019

в вашем контроллере входа :

protected function authenticated(Request $request, $user) {
       return redirect()->back();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...