#php #laravel #laravel-5 #laravel-5.2
#php #laravel #laravel-5
Вопрос:
Я работаю с laravel 5.2, и у меня проблема с настраиваемой аутентификацией. Это не приводит к входу пользователя в систему.
Здесь вы можете найти мой код для функции:
public function login(Request $request)
{
$this->validateLogin($request);
$email = $request->get('email');
$user = User::where('email', $email)->first();
if(! is_null($user))
{
if (Auth::login($user))
{
return redirect('/profile');
}
}
else
{
$this->register($request);
}
}
Вместо Auth::login я попробовал также функцию attempt и check, но ничего не работало…
Он регистрирует пользователя, но показывает пустую страницу без перенаправления на URL.
Ответ №1:
Вы видите пустую страницу вместо перенаправления на ‘/profile’, потому что ваше второе условие if никогда не выполняется как
Auth::login($user)
никогда не возвращает значение null, даже если пользователь вошел в систему
итак, в основном
if (Auth::login($user))
{
return redirect('/profile');
}
это если в вашем случае условие никогда не выполняется.
Вы можете попробовать это
public function login(Request $request)
{
$this->validateLogin($request);
$email = $request->get('email');
$user = User::where('email', $email)->first();
if(! is_null($user))
{
Auth::login($user);
if (Auth::check())
{
return redirect('/profile');
}
}
else
{
$this->register($request);
}
}
Auth::check();
вернет true, если пользователь вошел в систему, и будет перенаправлен в ‘/profile’.