Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pplrPmGdPH 159 of 252 menu
◀ ▶

Хеширование паролей в сидере Laravel

Заголовки, slug и email мы уже умеем генерировать через Str::random и конкатенацию. С пользователями иначе: по таблице users потом проверяют вход на сайт. Пароль в базе нельзя хранить открытым текстом - только хеш, из которого исходный пароль не восстановить. Зачем так устроено, разобрано в уроке про хеширование паролей основного учебника PHP.

В Laravel для сидеров используют фасад Hash и метод make: передаёте пароль - получаете готовую строку для колонки password. Подключим Hash к сидеру:

<?php namespace Database\Seeders; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Str; class DatabaseSeeder extends Seeder { public function run(): void { } } ?>

При вставке пользователя захешируем пароль через make. Для теста возьмём простой пароль password - в базу попадёт уже не он сам, а его хеш:

<?php namespace Database\Seeders; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Str; class DatabaseSeeder extends Seeder { public function run(): void { DB::table('users')->insert([ 'name' => Str::random(10), 'email' => Str::random(10) . '@example.com', 'password' => Hash::make('password'), ]); } } ?>

Выполним команду на вставку:

php artisan db:seed

Сделайте сидер, который добавит в базу пользователей с захешированными паролями.

Сделайте сидер, который добавит в базу пользователя с паролем, который вы сможете проверить при входе.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить