Я создал метод, который регистрирует пользователя на нашем сайте по ссылке с отдельного сайта. Мы используем токен и имя пользователя, чтобы найти пользователя, затем используем встроенный метод входа в систему для их аутентификации (я могу подтвердить, что все работает как положено).
Вот функция:
public function login($username, $token, $redirect)
{
$accountLogin = AccountLogin::Where('username', $username)
->Where('token', $token)
->first();
if ($accountLogin) {
try {
Auth::login($accountLogin);
print_r(Auth::check()) // prints 1.
header('Location: ' . $redirect);
exit;
} catch (\Exception $e) {
return $e->getMessage();
}
}
echo(array(
'status' => 'error',
'message' => 'Error logging in'
));
}
Моя проблема в том, что пользователь, по-видимому, вышел из системы после перенаправления.
В приведенной выше функции я вижу, что учетная запись найдена, и Auth::check()
возвращает 1 или, если я повторяю Auth::User()
, я получаю информацию о пользователях.
Затем мы пытаемся выполнить перенаправление, которое должно привести нас к маршруту, переданному в качестве параметра (вам необходимо пройти аутентификацию для всех этих маршрутов), но вместо этого я перенаправлен на домашнюю страницу и вышел из системы. Если я захожу с этой страницы, я получаю URL-адрес, который я хотел получить изначально (так что я вспоминаю, где я хочу go, но просто не узнает, что я вошел в систему).
Оба сайта в настоящее время работают локально через apache.
TIA.