#15 Laravel基礎
Laravel Breezeで認証を導入する
認証機能を自前で作るのは大変
ログイン・新規登録・パスワードリセット・メール認証などの認証機能を1から作ると、セキュリティ上の考慮事項が多く時間がかかります。Laravelには認証機能を即座に導入できる公式パッケージが用意されています。
Laravel Breezeとは
Laravel Breezeは、Laravelの認証機能(ログイン・登録・パスワードリセット・メール認証・プロフィール編集)をシンプルなBladeテンプレートで提供するスターターキットです。
コードはすべて自分のプロジェクトにコピーされるので、カスタマイズが自由です。
インストール手順
① Breezeをインストール
# Breezeパッケージをインストール
composer require laravel/breeze --dev
② スキャフォールドを生成
# Blade テンプレート版でインストール
php artisan breeze:install blade
このコマンドで以下が自動で作られます:
resources/views/auth/← ログイン・登録などのビューapp/Http/Controllers/Auth/← 認証コントローラーroutes/auth.php← 認証ルートresources/views/dashboard.blade.php← ログイン後のホーム画面
③ NPMと依存関係を準備
npm install && npm run dev
④ マイグレーションを実行
php artisan migrate
これでユーザーテーブルが作られます。
生成されるルート一覧
php artisan route:list を実行すると認証ルートが確認できます。
| URL | 機能 |
|---|---|
GET /register | 新規登録フォーム |
POST /register | 新規登録処理 |
GET /login | ログインフォーム |
POST /login | ログイン処理 |
POST /logout | ログアウト |
GET /forgot-password | パスワードリセット申請 |
POST /forgot-password | リセットメール送信 |
GET /reset-password/{token} | 新しいパスワード入力 |
GET /profile | プロフィール編集 |
GET /dashboard | ログイン後ホーム |
認証状態の確認
// ログイン済みかどうか
auth()->check() // true / false
// ログインユーザーを取得
auth()->user() // User モデル または null
$user = Auth::user(); // ファサードを使う書き方
// ビューの中でも使える
@auth
<p>ようこそ、{{ auth()->user()->name }}さん</p>
@endauth
@guest
<a href="/login">ログイン</a>
@endguest
ルートをログイン必須にする
// 📁 routes/web.php
// auth ミドルウェアで保護
Route::middleware('auth')->group(function () {
Route::resource('posts', PostController::class);
});
未ログインでアクセスしようとすると自動で /login にリダイレクトされます。
ログイン後のリダイレクト先を変える
デフォルトでは /dashboard にリダイレクトされます。変更するには:
// 📁 app/Http/Controllers/Auth/AuthenticatedSessionController.php
// store() メソッドの return 部分を変更
return redirect()->intended(route('posts.index'));
または RouteServiceProvider の定数で設定:
// 📁 app/Providers/RouteServiceProvider.php
public const HOME = '/posts'; // ← ここを変更
まとめ
composer require laravel/breeze --dev→php artisan breeze:install bladeの2ステップで認証が完成- すべてのコードが自プロジェクトにコピーされるので自由にカスタマイズできる
auth()ヘルパーで認証状態を確認できるRoute::middleware('auth')でルートをログイン必須にできる
次回はゲートとポリシーを使った認可を学びます。