Я использую Laravel 5.8 для своего блога.Я пытаюсь создать API аутентификации пользователя.У меня есть модель пользователя с тремя полями (имя, адрес электронной почты, пароль).В целях тестирования я использую Laravel Tinker для создания пользователей.Я использовал следующие команды для создания нового пользователя:
$ php artisan tinker
Psy Shell v0.9.9 (PHP 7.2.19-0ubuntu0.18.04.1 — cli) by Justin Hileman
>>> $u = new App\User()
=> App\User {#2989}
>>> $u->name = 'Sanket'
=> "Sanket"
>>> $u->email = 'sanket@sanket.com'
=> "sanket@sanket.com"
>>> $u->password = Hash::make('sanket')
=> "$2y$10$NbF1pA0T8cc6orqUcR2u/.FR0iw5mqNW8D3XO3/GfSrsns6VI8WKO"
>>> $u->save()
=> true
Теперь, когда я пытаюсь подтвердить пароль с помощью Hash :: check (), он всегда возвращает false.
>>> Hash::check('sanket', $u->password)
=> false
Я понятия не имею, почему это происходит в этот раз.Я уже работал над Laravel 5.6.Это никогда не давало мне такой ошибки.
Я пытался проверить, используя другой подход следующим образом:
Сначала я получил пользователя, используя следующую команду в тинкере:
>>> $u = User::where('email', 'sanket@sanket.com')->first()
[!] Aliasing 'User' to 'App\User' for this Tinker session.
=> App\User {#3015
id: 31,
name: "Sanket",
email: "sanket@sanket.com",
created_at: "2019-06-23 02:49:40",
updated_at: "2019-06-23 02:49:40",
deleted_at: null,
isAdmin: null,
}
Затем я проверил пароль
>>> $u->password
=> "$2y$10$U15hLUgd/X4a5hOuR78RKuo86jvzIerCJqjvg0fIJ8toqIUGZnreW"
Затем я создал переменную для хранения хешированного пароля
>>> $hash = Hash::make('sanket')
=> "$2y$10$onDN6nLW0e1IMLJOl77rWuC9ZQHMwPZKSFn5ok/kfcepRGZuufjWS"
Затем я попытался установить этот хэш для пользователя
>>> $u->password = $hash
=> "$2y$10$onDN6nLW0e1IMLJOl77rWuC9ZQHMwPZKSFn5ok/kfcepRGZuufjWS"
>>> $u->save()
=> true
Но теперь хешированный пароль отличается от шага 2 и шага 3
>>> $u->password
=> "$2y$10$CkkCEUkS16ZPW4takJdl.e7uKvJWgiAOGEmUBgeFYtjHJ036lHW3y"
Я также попробовал следующее, и это работает, как и ожидалось.
>>> Hash::check('sanket', Hash::make('sanket'))
=> true
Проблема возникает только тогда, когда я назначаю хешированный пароль пользователю.
Что не так?