Условно установите URL для перенаправления после аутентификации - PullRequest
0 голосов
/ 28 мая 2019

В моем приложении автор сообщения может установить общедоступную запись как частную.Если пользователь, не прошедший проверку подлинности, попытается посетить это сообщение, ему будет предложено войти в систему.

После проверки подлинности я хочу перенаправить его обратно на исходный URL-адрес сообщения, чтобы они могли прочитать это личное сообщение.

Это поведение обычно обрабатывается промежуточным программным обеспечением авторизации Laravel по умолчанию.Однако, поскольку сообщения часто являются общедоступными, я не могу использовать это в этом случае.

Вот мое текущее, неработающее промежуточное ПО:

    public function handle($request, Closure $next)
    {
        $post = $request->route('post');
        if ($post->isPrivate()) {
            $request->session()->setPreviousUrl($request->url());
            return redirect()->guest('login');
        }
        return $next($request);
    }

Я надеюсь, что смогу установитьпользовательский URL для перенаправления на (/ posts / {id}).Однако, когда я пытаюсь войти в систему, я перенаправляюсь на свое свойство $ redirectTo по умолчанию (/dashboard).

Возможно ли это?Я даже думаю об этом правильно?

1 Ответ

0 голосов
/ 29 мая 2019

@ adam, спасибо за помощь!

Для всех, кто ищет, вот мой окончательный код:

Промежуточное программное обеспечение:

    public function handle($request, Closure $next)
    {

        if (auth()->check()) {
            return $next($request);
        }

        $post = $request->route('post');
        if ($post->isPrivate()) {
            $request->session()->setPreviousUrl($request->path());
            return redirect()->guest('login');
        }

        return $next($request);
    }

LoginController:

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