Laravel Breeze: что нужно знать до установки аутентификации
Breeze добавляет в приложение регистрацию, вход, сброс пароля и проверку почты за пару команд. Разбираем, что подготовить заранее, какой стек выбрать и на чём спотыкаются в первый раз.

Laravel Breeze ставит рабочую аутентификацию — регистрацию, вход, восстановление пароля, подтверждение email и смену пароля в профиле — примерно за пять минут. В конце у вас будут готовые маршруты, контроллеры и шаблоны, которые можно редактировать под себя. Статья про то, что нужно иметь и решить до запуска php artisan breeze:install, чтобы не переустанавливать пакет из-за неправильно выбранного стека.
Актуально для Laravel 11.x и 12.x и Breeze 2.x. В более старых версиях (Laravel 9–10) команды те же, но набор стеков и структура файлов немного отличаются — сверяйтесь с документацией под вашу версию.
Что нужно иметь до начала
Breeze — не самостоятельное приложение, а слой поверх свежего Laravel. Проверьте, что на месте всё из списка, иначе установка либо упадёт, либо оставит наполовину настроенный проект.
- PHP 8.2 или новее — минимум для Laravel 11/12. Проверьте
php -v. - Composer — Breeze ставится как dev-зависимость через него.
- Готовый проект Laravel:
composer create-project laravel/laravel my-app. Breeze в чистое место не устанавливают. - Настроенная база данных в
.envи выполненные миграции. Breeze опирается на таблицуusers, которая приезжает со стартовыми миграциями Laravel. - Node.js и npm — фронтенд Breeze собирается через Vite. Без сборки страницы входа откроются без стилей.
Отдельно про базу: если вы выбрали SQLite (в новых версиях Laravel это дефолт), файл database/database.sqlite должен существовать. Для MySQL или PostgreSQL сначала создайте саму базу и пропишите доступы, потом ставьте Breeze.
Выбор стека — решение, которое трудно отменить
Главный вопрос при установке: breeze:install спросит, какой фронтенд-стек вы хотите. Ответ определяет, какие шаблоны и зависимости попадут в проект, и переиграть его потом — значит вычистить сгенерированные файлы вручную. Поэтому выбирайте осознанно.
| Стек | Что получаете | Кому подходит |
|---|---|---|
| Blade + Alpine | Серверный рендеринг, шаблоны Blade, лёгкий Alpine.js для интерактива | Классические серверные приложения, минимум JS |
| Livewire (Volt) | Реактивные компоненты на PHP без своего API-слоя | Интерактивный UI без отдельного фронтенда на JS |
| React / Vue (Inertia) | SPA-подобный фронтенд на Inertia, серверная маршрутизация | Богатый клиентский интерфейс, команда с JS-опытом |
| API | Только бэкенд-маршруты аутентификации, без шаблонов | Отдельный фронтенд или мобильное приложение |
Стек API не отдаёт вам HTML-страницы вовсе — он рассчитан на связку с внешним SPA. Если вы ждали форму входа в браузере, а получили голые JSON-эндпоинты, вы просто выбрали не тот вариант.
Breeze задуман как отправная точка, а не как готовый продукт. Всё, что он генерирует, лежит в вашем репозитории и предназначено для правки — это не спрятанный в вендоре код.
Установка по шагам
Установите пакет как dev-зависимость:
composer require laravel/breeze --devПроверка: в
composer.jsonв блокеrequire-devпоявитсяlaravel/breeze.Запустите установщик и выберите стек в интерактивном меню:
php artisan breeze:installКоманда спросит про стек, про темную тему и про набор для тестов (Pest или PHPUnit). Стрелками выберите нужное, подтвердите Enter. Проверка: в
routes/появитсяauth.php, а вapp/Http/Controllers/Auth/— контроллеры входа и регистрации.Примените миграции — стартовые таблицы Laravel, включая
users:php artisan migrateПроверка: команда выведет строки вида
DONEдля каждой миграции. Если увидите ошибку подключения — вернитесь к настройке.env.Установите фронтенд-зависимости и запустите сборку:
npm install npm run devПроверка: Vite поднимет dev-сервер и не будет ругаться на отсутствующие модули. Держите этот процесс запущенным во время разработки.
В отдельном терминале поднимите приложение:
php artisan serveПроверка: откройте
http://127.0.0.1:8000/register— должна появиться оформленная форма регистрации. Зарегистрируйтесь и убедитесь, что вас перебросило на/dashboard.
Если не получилось
Страница входа без стилей, в консоли ошибки загрузки ресурсов. Не запущен Vite. Выполните
npm run devдля разработки илиnpm run buildдля продакшена — иначе Blade-шаблоны ссылаются на несобранные ассеты.SQLSTATE[HY000] [1049] Unknown databaseилиcould not find driver. База не создана либо в PHP не включено нужное расширение (pdo_mysql,pdo_pgsql,pdo_sqlite). Создайте базу, проверьте.envи включённые расширения черезphp -m.Table 'users' doesn't existпри попытке входа. Не выполнены миграции. Запуститеphp artisan migrate.Письмо о сбросе пароля или подтверждении не приходит. В свежем проекте почта часто настроена на драйвер
log— письмо не отправляется, а пишется вstorage/logs/laravel.log. Для реальной отправки настройте SMTP в.env.Ссылка подтверждения email ведёт в никуда. Проверка почты работает, только если ваша модель
Userреализует интерфейсMustVerifyEmail. Breeze генерирует маршруты, но включить интерфейс в модели нужно самостоятельно.
Что решить заранее, чтобы не переделывать
Три вопроса лучше закрыть до установки, а не после запуска в бой.
- Нужна ли проверка email. Если да — заложите SMTP и добавьте
MustVerifyEmailв модельUserсразу, пока не появились пользователи без подтверждённой почты. - Стек не переигрывается легко. Смена, например, с Blade на Inertia после установки — это ручная чистка контроллеров, шаблонов и зависимостей. Определитесь с фронтендом до
breeze:install. - Breeze или Jetstream. Breeze даёт базовую аутентификацию и точку для доработки. Если нужны двухфакторка, управление сессиями и командами из коробки — это Jetstream, отдельный пакет. Начинать проект под будущий 2FA на Breeze, чтобы потом мигрировать, — лишняя работа.
Что делать дальше
После рабочей формы входа настройте отправку почты через реальный SMTP и проверьте сброс пароля от начала до конца — на живом почтовом ящике, а не по логу. Затем решите, как разграничивать доступ: middleware auth уже навешен на маршруты дашборда, но роли и права Breeze не даёт — под это берут отдельный пакет вроде spatie/laravel-permission. Настройка двухфакторной аутентификации — отдельная тема; на Breeze её из коробки нет, здесь мы разбираем только базовый вход.
Проверка рекламы на риски: Что в макете вызовет вопросы ФАС: превосходные степени, сравнения, обещания результата, маркировка.
Спросить за 40 ₽Источники: Laravel Starter Kits — официальная документация, laravel/breeze на GitHub
Частые вопросы
Breeze или Fortify — в чём разница?
У меня Laravel 10, команды из статьи подойдут?
Можно ли поменять стек после установки?
Форма входа открывается без стилей — это баг Breeze?
Письма о сбросе пароля не приходят, хотя всё установилось.
Подходит ли Breeze для API и мобильного приложения?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.