Laravel12でのAdminLTE統合:認証機能のスムーズ実装方法
※ 当ブログにはプロモーションが含まれています
はじめに
Laravel12からBreezeが実質非推奨となったようです。
使えないことはないのですが、今後のアップデートの予定はないようなので、 前回の記事でAdminLTEでログイン画面を作ったので認証機能も作成してみようと思います。
👉前提条件
1. Laravel12とAdminLTEをインストール
AdminLTEのインストールは以下でも説明してます。
Laravel12インストール
composer create-project laravel/laravel:^12 laravel-auth
AdminLTEインストール
cd laravel-auth composer require jeroennoten/laravel-adminlte php artisan adminlte:install php artisan adminlte:install --only=auth_views
2. Sqliteの表示
今回はSqliteを使用して作業を行います。
sqliteファイルはバイナリファイルなので、 「SQLite」というアドオンをイントールしておきましょう。
3. ユーザを作ろう
Laravel12をインストールするとデフォルトで Usersテーブル にデータを登録してくれるSeederが作られています。
以下のコマンドでデータを登録してみましょう。
php artisan db:seed
データの内容は /database/seeders/DatabaseSeeder.php に記載されています。
パスワードについては /database/factories/UserFactory.php をみていただくとデフォルトで password となっていることがわかります。
4. LoginControllerを作ろう
以下のコマンドでコントローラーを作ってみましょう。
php artisan make:controller LoginController
以下の内容のControllerが /app/Http/Controllers/LoginController.php に作成れます。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class LoginController extends Controller { // }
以下のように変更してみましょう。
<?php namespace App\Http\Controllers; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; class LoginController extends Controller { public function authenticate(Request $request): RedirectResponse { $credentials = $request->validate([ 'email' => ['required', 'email'], 'password' => ['required'], ]); if (Auth::attempt($credentials)) { $request->session()->regenerate(); return redirect()->intended('/'); } return back()->withErrors([ 'email' => 'The provided credentials do not match our records.', ])->onlyInput('email'); } }
5. 認証を試してみる
routes/web.php に以下を追加してください。
Route::get('/login', function() {
return view('auth.login');
});
Route::post('/login', [LoginController::class, 'authenticate'])->name('login');
それでは以下のコマンドでサーバを起動しましょう。
php artisan serve
http://localhost:8000/loginにアクセスしてみましょう。
以下の画面が表示されるので先ほど登録したユーザの情報を入力して Sgin in ボタンを押してみましょう。

そうするとLarvelのデフォルトの画面に遷移します。
認証についてはこちらで成功となります。
7. ルーティングで制限
ログインできている場合のみアクセスさせたい場合は以下のようにroutes/web.phpを変更してみてください。
Route::middleware(['auth', 'auth.session'])->group(function () {
Route::get('/', function () {
return view('welcome');
});
});
ログインができていない場合は http://localhost:8000/login にリダイレクトされるのがわかります。
ログアウトなどをも行いたいですが今回はここまでとします。
8. おすすめ教材📘
|
|
✅ まとめ
- Laravel 12 では Breeze の更新が停止しており、今後は代替手段の検討が必要かもしれません。(Breeze自体はまだ使用できます)
- AdminLTE パッケージを活用することで、ログイン画面などの認証機能を手軽に構築できます。
- SQLite を使用すれば、ブラウザ上で手軽に DB 操作・確認が可能です(VSCode拡張なども便利)。
- Laravel 12 にはデフォルトで Seeder が用意されており、テストユーザーもすぐ作成できます。
- 認証のロジックは LoginController に記述し、Auth::attempt() を使ってログイン処理を簡潔に実装できます。
- 認証後のリダイレクトや保護されたルート設定も auth ミドルウェアで簡単に管理可能です。

