В моем приложении 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');
}
Как я могу отправить пользователя в исходное место назначения, если он присутствует в сеансе, в противном случае отправить его обратно домой.
@Saad Suri Спасибо за работу :) хорошего дня
Разместите его как ответ, чтобы будущие читатели могли получить помощь
Повторяющийся вопрос - [stackoverflow.com/questions/15389833/…






документация упоминает об этом очень кратко, но в Laravel есть встроенный метод:
return redirect()->intended('/home')
Каждый раз, когда промежуточное ПО Auth перенаправляет пользователя, потому что он не вошел в систему, его исходный URL-адрес будет сохранен. intended проверяет, сохранен ли этот URL-адрес и использует его или резервный вариант, который вы указываете в качестве аргумента.
Использовать,
return redirect()->intended('/home')
Предполагаемый метод в перенаправителе будет перенаправлять пользователя на URL-адрес, к которому они пытались получить доступ, прежде чем он будет перехвачен промежуточным программным обеспечением аутентификации. Этому методу может быть предоставлен резервный URI, если предполагаемый пункт назначения недоступен.
return redirect()->intended('/home');Использовать встроенный метод laravel