Как я могу обновить пароль пользователя в Laravel 5?

Я использую Laravel 5.7.

Я пытаюсь обновить один из своих пользовательских паролей

Я запустил этот php artisan tinker

потом

>>> bcrypt(12345);                                                                                                
=> "$2y$10$5woTm5/1w.euUliNCujmMu.oYiC.U8YnRpBHVQN/CxyKXAYB.pGiS"    

а также пробовал

>>> Hash::make('12345');                                                                               
=> "$2y$10$vjCcADglqpHiLI9tTVlJ2OoaaoQq/qqntRaIaEclTh1exq.vdZcxK" 

Я скопировал хеш-обновление в свою базу данных

Я попытался войти в систему с 12345. Я не могу авторизоваться.

Что я забыл сделать?

Как упоминалось в вашем последнем вопросе, используйте Hash::make('yourpasswordhere');. Это будет использовать функцию-оболочку Laravel для создания правильно хешированного пароля.

aynber 28.12.2018 21:23

Я создал пользователей с помощью bcrypt () вот так: i.imgur.com/5VBvBuf.jpg

code8888 28.12.2018 21:25

Да, но Laravel не может использовать bcrypt для проверки аутентификации.

aynber 28.12.2018 21:26

Я попробовал ваше предложение, результат все тот же, проверьте мои шаги: i.imgur.com/tVUjqaj.png

code8888 28.12.2018 21:27

Как вы аутентифицируете пользователя?

Felippe Duarte 28.12.2018 21:28

@FelippeDuarte, я использовал функцию Laravel по умолчанию: i.imgur.com/77S5c4b.png

code8888 28.12.2018 21:30

remember_token что-нибудь значит?

code8888 28.12.2018 21:35

попробуйте сначала проверить вручную на tinker: auth()->validate([ 'username' => 'Admin', 'password' => '12345']) или перейти на email, если вы используете электронную почту в качестве обработчика пользователя

veelasky 28.12.2018 21:41

Если посмотреть на config/auth.php, конфиги правильные? Он указывает на ту же таблицу, которую вы обновляете вручную?

Felippe Duarte 28.12.2018 21:42

@FelippeDuarte Вот как это выглядит: i.imgur.com/VHHjZpf.png

code8888 28.12.2018 21:43

почему вы не проверяете с Auth::attempt()

H45H 29.12.2018 06:41

Убедитесь, что для driver в ../config/hashing.php установлено значение bcrypt.

Matthijs 29.12.2018 13:44
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
3
12
433
3

Ответы 3

Попробуй это :

$password = 'something';
$user = User::findOrFail($userId);
$user->fill(['password' => Hash::make($password)])->save();

Не забудьте использовать App \ User;

Вы можете добиться этого несколькими способами. Поделюсь 2 способами.

Допустим, вы хотите обновить пароль до 12345.


option1: мастер php tinker

Если у вас есть доступ к локальной настройке

В корне вашего проекта введите php artisan tinker

Когда вы находитесь в режиме оболочки, наберите bcrypt('12345'), вы должны получить хэш-пароль.

Psy Shell v0.9.9 (PHP 7.1.4 — cli) by Justin Hileman                                            
>>> bcrypt('12345')                                                                              
=> "$2y$10$9ruOL7x2T2Utejl96Mp2MOh2xQB/I2R/R0SMp3G55LokeoWGjpuR2"                                
>>>`

option2: сайт

Если у вас нет доступа к локальной настройке, вы можете сгенерировать хеш через этот сайт.

http://www.passwordtool.hu/php5-password-hash-generator

Когда у вас будет новый хеш, скопируйте его.

  • Подключитесь к вашей базе данных
  • открыть таблицу пользователей
  • Перейдите к строке пользователя, которого вы хотите обновить.
  • Вставьте этот новый хешированный пароль
  • применить или сохранить
  • ваш новый пароль должен вступить в силу сейчас
  • Готово ✅

Попробуй это:

$user = App\User::where('email', '[email protected]')->first();
$user->password = Hash::make('password');
$user->save();

Это создаст хэш-пароль и сохранит его для пользователя, при условии, что вы сможете получить пользователя, используя адрес электронной почты.

Вы также можете обновить пользователя, используя идентификатор или любой другой уникальный идентификатор, который у вас есть для этого использования. Например, если у вас есть идентификатор, попробуйте следующее:

$user = App\User::where('id', 101)->first();
$user->password = Hash::make('password');
$user->save();

Другие вопросы по теме