Auth::попытка () laravel 5.2

#laravel-5

#laravel-5

Вопрос:

пожалуйста, помогите мне, я новичок в laravel 5.2, я вручную кодирую свою страницу входа в laravel.

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

вот мой код

userController.php публичная функция postSignIn(Запрос $request){

     $user = array(
        'email' => $request->input('email'),
        'password' => $request->input('password')
    );

        if (Auth::attempt($user)) {
            return redirect() -> route('dashboard');

        }
      return redirect()->back();

}
  

}

пожалуйста, помогите мне. большое вам спасибо.

Комментарии:

1. если (Auth::попытка([’email’ => $request->email, ‘password’ => $request->пароль])) { return redirect()-> предназначенный($this->redirectPath()); } else { return redirect()->back()->with(‘предупреждение’, ‘Ошибка входа в систему.’); }

2. Метод attempt принимает массив пар ключ / значение в качестве своего первого аргумента. Значения в массиве будут использоваться для поиска пользователя в таблице вашей базы данных. Итак, в приведенном выше примере пользователь будет получен по значению столбца электронной почты. Если пользователь найден, хэшированный пароль, хранящийся в базе данных, будет сравниваться с хэшированным значением пароля, переданным методу через массив. Если два хэшированных пароля совпадают, для пользователя будет запущен аутентифицированный сеанс. Метод attempt вернет true, если аутентификация прошла успешно. В противном случае будет возвращено значение false .

3. laravel.com/docs/5.3/authentication#authenticating-users

4. Привет @t9toqwerty большое вам спасибо за ответ, я пробую код, который вы предложили, но он дает мне тот же результат, когда я правильно ввожу адрес электронной почты, даже если мой пароль равен нулю, он возвращает true, но если мой адрес электронной почты неверен, он возвращается. падает.

Ответ №1:

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

 $credentials =['email' => $request['email'], 'password' =>     $request['password'];

var_dump($credentials);
  

Если вы уверены, что данные верны, тогда лучше проверить возврат attemp()

var_dump(Auth::попытка($учетные данные));

Вы также можете проверить проверку данных здесь: https://laravel.com/docs/5.2/validation

Кроме того, полезно проверить вашу базу данных (таблицу пользователей) на наличие нулевых записей.