0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LaravelでPIC_TWEET③(ユーザー管理+管理者画面を実装してみた)

Last updated at Posted at 2025-10-28

この記事では、Laravelで「一般ユーザー」と「管理者ユーザー」を区別した認証付きアプリ PIC TWEET_AUTH の開発フローと、開発中のポイント・苦労した点をまとめています。RailsでのDevise経験をもとに、LaravelでBreezeを活用して実装しました。

📸 実際の画面(Gyazo)(画面例)

新規登録ページ

新規登録

ログインページ

ログイン

マイページ(一般ユーザー画面)

マイページ

管理者ダッシュボード

管理者ダッシュボード

Laravel Breeze 認証画面例

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 を修正し、管理者と一般ユーザーを振り分け

  • 目的:ログイン後に適切な画面にリダイレクト

  • 大変だった点:

ルート名やリダイレクト先の指定を誤ると管理者がユーザー画面に飛んでしまう

条件分岐の実装やセッション管理の理解が必要

💡 所感

  • RailsでのDevise経験を応用してLaravelでのBreeze利用を検証

  • ディレクトリを user と admin に分ける構成にしたことで、機能拡張やメンテナンスがしやすくなる

  • チャットGPTを活用して、手順整理やエラー解消を行いながら開発を進めた

  • Laravelの認証・ミドルウェア・Blade構成を実践で理解できた

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?