エンジニア日記

現役エンジニアの役に立てばいいなと思い立ち上げたブログ

Laravel12でのAdminLTE統合:認証機能のスムーズ実装方法

※ 当ブログにはプロモーションが含まれています

はじめに

Laravel12からBreezeが実質非推奨となったようです。

使えないことはないのですが、今後のアップデートの予定はないようなので、 前回の記事でAdminLTEでログイン画面を作ったので認証機能も作成してみようと思います。

👉前提条件

  • PHPインストール済み(PHP8.2〜PHP8.2)
  • composerインストール済み(ダウンロードは こちら
  • VisualstudioCodeインストール済み(公式サイト

1. Laravel12とAdminLTEをインストール

AdminLTEのインストールは以下でも説明してます。

【Laravel 12対応】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」というアドオンをイントールしておきましょう。

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の教科書 バージョン10対応 [ 加藤 じゅんこ ]

価格:3300円
(2025/6/27 22:37時点)

これだけで基本がしっかり身につく HTML/CSS&Webデザイン1冊目の本 [ Capybara Design 竹内 直人 ]

価格:2420円
(2025/6/27 22:39時点)

✅ まとめ

  • Laravel 12 では Breeze の更新が停止しており、今後は代替手段の検討が必要かもしれません。(Breeze自体はまだ使用できます)
  • AdminLTE パッケージを活用することで、ログイン画面などの認証機能を手軽に構築できます。
  • SQLite を使用すれば、ブラウザ上で手軽に DB 操作・確認が可能です(VSCode拡張なども便利)。
  • Laravel 12 にはデフォルトで Seeder が用意されており、テストユーザーもすぐ作成できます。
  • 認証のロジックは LoginController に記述し、Auth::attempt() を使ってログイン処理を簡潔に実装できます。
  • 認証後のリダイレクトや保護されたルート設定も auth ミドルウェアで簡単に管理可能です。

関連記事

HP Directplus -HP公式オンラインストア-