Laravel перенаправляет пользователя в исходное место назначения после входа в систему

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

Это мой обработчик входа в социальную сеть после входа в систему:

public function handleProviderCallback($provider)
{

    $user = Socialite::driver($provider)->user();

    $authUser = $this->findOrCreateUser($user, $provider);
    Auth::login($authUser, true);
    return redirect('/home');
}

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

return redirect()->intended('/home'); Использовать встроенный метод laravel
Saad Suri 17.07.2018 09:00

@Saad Suri Спасибо за работу :) хорошего дня

Sunil Meena 17.07.2018 09:02

Разместите его как ответ, чтобы будущие читатели могли получить помощь

Saad Suri 17.07.2018 09:03

Повторяющийся вопрос - [stackoverflow.com/questions/15389833/…

hitesh makodiya 17.07.2018 09:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
1 177
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

документация упоминает об этом очень кратко, но в Laravel есть встроенный метод:

return redirect()->intended('/home')

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

Ответ принят как подходящий

Использовать,

return redirect()->intended('/home')

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

Другие вопросы по теме