/ / Laravel 5.2: аутентифікація auth :: спроба повертає false - php, laravel, laravel-5.2

Laravel 5.2: Authentication auth :: try повертає false - php, laravel, laravel-5.2

Я працюю над модулем аутентифікації, у мене є ця дивна проблема, Auth::attempt повертає помилково, де правильне моє ім’я користувача та пароль.

Так само питання тут задається питання, але це не стосується моїх проблем, і це питання стосується laravel 4, я спробував їх методи, але все ще не працює.

У моєму контролері є наступний код:

$user = array(
"name" => Input::get("username"),
"password" => Input::get("password")
);
if (Auth::attempt($user)) {
return "ok.";
} else {
dd($user);
}

Інша частина повертає:

array:2 [▼
"name" => "ali"
"password" => "ali"
]

Що означає name і пароль правильний.

Я використовую laravel 5.2 і в моєму users таблиця пароль не хеширован, і немає remember_token значить я створив своє user безпосередньо

Відповіді:

1 для відповіді № 1

це не буде працювати, оскільки auth :: спроб перетворює пароль у хеш за допомогою bcrypt та шукає той хеш у таблиці користувачів, щоб він відповідав.

коротше, пароль повинен бути хешем, збереженим у таблиці бази даних для auth :: спроби працювати.

саме тому ваша умова if () не працює.

нижче - від laravel 5,2 документа

Метод спроби приймає масив ключів /значення пар як його перше аргумент. Значення в масиві будуть використані для пошуку користувача таблиця вашої бази даних Отже, у наведеному вище прикладі користувач буде отриманий за значенням стовпця електронної пошти. Якщо користувача знайдено, хешований пароль, що зберігається в базі даних, буде порівнюватися з хешоване значення пароля, передане методу через масив. Якщо два буде започатковано хешовані паролі, що відповідають автентифікованому сеансу користувач.

Метод спроби повернеться істинним, якщо аутентифікація пройшла успішно. Інакше помилкове повернення буде повернуто.


2 для відповіді № 2

метод спроби хешує пароль перед порівнянням його з базою даних, тобто якщо пароль у вашій базі даних не буде хешований, він не збігатиметься.