Laravel + Admiral: как не тратить полжизни на авторизацию

от автора

Если ты в 2025 году ты всё ещё руками собираешь авторизацию на Laravel для своей админки — у меня для тебя плохие новости. Ты либо получаешь удовольствие от страданий (либо просто не знаешь про Admiral).

А если нет желания быть заложником бесконечного копипаста и конфигурационного ада, то есть один очень простой способ перестать тратить часы на одни и те же ритуалы.

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

Шаг 1. Laravel — ставим и запускаем

Создай папку admiral-laravel-init, зайди в неё и давай установим Laravel.

composer global require laravel/installer laravel new backend cd backend composer run dev 

Открываешь в браузере http://localhost:8000 — видишь приветственную страницу? Круто, значит Laravel ожил.

Шаг 2. Admiral — твой спаситель

Теперь в корне проекта:

npx create-admiral-app@latest 

В ответ выбери Install the template without backend setting, дай имя проекту admin. После установки зайди в admin и

npm i 

В .env поправь:

VITE_API_URL=http://localhost:8000/admin 

И запусти фронт:

npm run build && npm run dev 

Открывай http://localhost:3000 и вперёд — ты уже на странице логина.

Шаг 3. Авторизация — делаем по-человечески

Берём Laravel Sanctum, ставим и настраиваем:

php artisan install:api 

Добавляем guard admin в config/auth.php:

'admin' => [     'driver' => 'sanctum',     'provider' => 'users', ], 

В User.php добавляем:

use Laravel\Sanctum\HasApiTokens;  class User extends Authenticatable {     use HasApiTokens, Notifiable, HasFactory; } 

Шаг 4. Контроллер для входа, выхода и проверки

Код AuthController — тут особо и комментировать нечего, всё просто:

// ... (вставь как в оригинале) 

Шаг 5. Формы и ресурсы

Тут без сюрпризов: валидируем логин, возвращаем пользователя.

// LoginRequest.php и AuthUserResource.php — как в оригинале 

Шаг 6. Сервисы и защита от дурака

Никаких излишеств, в AuthService просто проверяем пароль.

LimitLoginAttempts — ловим левые попытки взлома.

Шаг 7. Роуты

Пропиши маршруты для авторизации и защиты:

// routes/admin.php — как выше 

Не забудь подключить в bootstrap/app.php.

Шаг 8. Сидируем тестового юзера

User::factory()->create([     'name' => 'Test User',     'email' => 'test@example.com',     'password' => bcrypt('12345678'), ]); 

php artisan db:seed

Итог

Запускай бекенд, фронт — и залогинься. Если что-то не работает, погугли CORS или попробуй мой лайфхак с config/cors.php.

Вот и вся магия. Патчи, костыли и лишние библиотеки — в топку.

Если хочешь прокачать CRUD или вписать роли — пиши, расскажу, как сделать круто и быстро.

Вот так просто можно перестать страдать с авторизацией и заняться нормальным кодом.

Мнения?


ссылка на оригинал статьи https://habr.com/ru/articles/935198/