この記事では、Laravelで「一般ユーザー」と「管理者ユーザー」を区別した認証付きアプリ PIC TWEET_AUTH の開発フローと、開発中のポイント・苦労した点をまとめています。RailsでのDevise経験をもとに、LaravelでBreezeを活用して実装しました。
📸 実際の画面(Gyazo)(画面例)
新規登録ページ
ログインページ
マイページ(一般ユーザー画面)
管理者ダッシュボード
Laravel Breeze 認証画面例
🎯 アプリ概要
- アプリ名:PIC TWEET_AUTH
- 目的:Laravelのユーザー管理機能を学習しつつ、ユーザー画面と管理者画面を分けて実装する
- 構成:
- /user/mypage → 一般ユーザー用ページ
- /admin/dashboard → 管理者用ページ(Basic認証+ログイン保護)
🏗 開発ステップと苦労した点
STEP1: Breeze導入
-
作業内容:
php artisan breeze:installで認証機能を構築 -
目的:ログイン/登録/パスワードリセット機能を自動生成
-
大変だった点:
- CSSやJSのビルド (
npm run dev) を忘れてログイン画面が崩れる
- RailsでのDeviseのイメージと似ているが、Bladeテンプレート・Tailwindとの組み合わせに慣れるまで少し時間がかかった
STEP2: 一般ユーザー用マイページ作成
-
作業内容:
/user/mypageの Blade とコントローラを作成 -
目的:ログインユーザーが自分専用ページを閲覧できる
-
大変だった点:
user->nameを正しく表示するためにコントローラからのデータ受け渡しを確認
authミドルウェアで認証制御を確認する際にTinkerやブラウザでテスト
STEP3: 管理者カラム追加 & Seeder設定
-
作業内容:
is_adminカラム追加、Seederで管理者固定アカウント作成 -
目的:管理者と一般ユーザーを識別できる状態に
-
大変だった点:
- Tinkerでカラム確認時に一度 >>> の入力ミスでParseError
- マイグレーションやSeederが正しく反映されるか確認する手間
STEP4: 管理者ダッシュボード作成
-
作業内容:
admin/dashboard.blade.php作成 -
目的:管理者専用画面の土台作成
-
大変だった点:
- 管理者ルートに正しくミドルウェアが適用されているか確認
php artisan route:list -vを使ってミドルウェアの適用状況をチェック
STEP5: Basic認証ミドルウェア追加
-
作業内容:
AdminBasicAuthミドルウェア作成、ルートに適用 -
目的:管理者画面に二重保護を追加
-
大変だった点:
bootstrap/app.phpにミドルウェアエイリアスを追加しても、
app()->make('router')getMiddleware()が空のままで反映されているか確認しにくい
- 最終的に php artisan route:list -v でルートに適用されていることを確認
STEP6: ログイン後のリダイレクト制御
-
作業内容:AuthenticatedSessionController を修正し、管理者と一般ユーザーを振り分け
-
目的:ログイン後に適切な画面にリダイレクト
-
大変だった点:
ルート名やリダイレクト先の指定を誤ると管理者がユーザー画面に飛んでしまう
条件分岐の実装やセッション管理の理解が必要