自分だけのクイズ作成 - Quipha公開中

【Laravel8/9】認証機能の導入 (Breeze)

Laravel
スポンサーリンク

はじめに

Laravel8認証機能(ログイン機構)を導入したいと思います。

というのも、Laravel7以前の導入の仕方と変わっていました。

今回は、シンプルで最小限の認証機能である、Breezeを導入します。

Jetstreamの方が、より堅牢な機能を持っているようですが、機会があれば別途、記事をまとめたいと思います。

参考
スターターキット 9.x Laravel

他にも私のブログで、Laravelについて解説している記事がありますのでご覧ください。

【紹介】個人開発

私の個人開発ですがQuiphaというサービスを開発しました。(Laravel, Vue3など)
良かったら、会員登録して動作を試してみて下さい。

また、Laravel 9 実践入門という書籍を出版しました。
Kindle Unlimitedを契約している方であれば、読み放題で無料でご覧いただくことができます

是非多くの方に読んでいただき、Laravelの開発に少しでもお役に立てたら幸いです。

Laravelの構築

使用するバージョン
  • Windows 11 or macOS Monterey (M1)
  • Laravel Framework 8 or 9
  • Node.js 16.14.2
  • Composer v2.3.5

2022/02/09 Laravel9で問題なく動作することを確認しました。
2022/04/19 最新バージョンで確認しました。

Laravel Sailを使いプロジェクトを作成していますが、詳しくは以下の記事をご覧ください。

Windows
Mac

上記の手順まで済んでLaravelにアクセスすると、初期画面が表示されます。

スポンサーリンク

Laravel Breezeのインストール

次に、Composerを使用してLaravel Breezeをインストールします。
プロジェクト直下で、以下のコマンドを実行します。

$ sail composer require laravel/breeze --dev

Composerでのインストールが完了したら、Artisanでのインストールを行います。
以下のコマンドにより、認証のためのビューやルート、コントローラなどが作成されます。

$ sail php artisan breeze:install

一部のファイルが更新され、また、認証に関する以下のファイルが追加されました。

認証用コントローラやビューなど
  • app/Http/Controllers/Auth/AuthenticatedSessionController.php
  • app/Http/Controllers/Auth/ConfirmablePasswordController.php
  • app/Http/Controllers/Auth/EmailVerificationNotificationController.php
  • app/Http/Controllers/Auth/EmailVerificationPromptController.php
  • app/Http/Controllers/Auth/NewPasswordController.php
  • app/Http/Controllers/Auth/PasswordResetLinkController.php
  • app/Http/Controllers/Auth/RegisteredUserController.php
  • app/Http/Controllers/Auth/VerifyEmailController.php
  • app/Http/Requests/Auth/LoginRequest.php
  • app/View/Components/AppLayout.php
  • app/View/Components/GuestLayout.php
  • resources/views/auth/confirm-password.blade.php
  • resources/views/auth/forgot-password.blade.php
  • resources/views/auth/login.blade.php
  • resources/views/auth/register.blade.php
  • resources/views/auth/reset-password.blade.php
  • resources/views/auth/verify-email.blade.php
  • resources/views/components/application-logo.blade.php
  • resources/views/components/auth-card.blade.php
  • resources/views/components/auth-session-status.blade.php
  • resources/views/components/auth-validation-errors.blade.php
  • resources/views/components/button.blade.php
  • resources/views/components/dropdown-link.blade.php
  • resources/views/components/dropdown.blade.php
  • resources/views/components/input.blade.php
  • resources/views/components/label.blade.php
  • resources/views/components/nav-link.blade.php
  • resources/views/components/responsive-nav-link.blade.php
  • resources/views/dashboard.blade.php
  • resources/views/layouts/app.blade.php
  • resources/views/layouts/guest.blade.php
  • resources/views/layouts/navigation.blade.php
  • routes/auth.php
  • tailwind.config.js
  • tests/Feature/AuthenticationTest.php
  • tests/Feature/EmailVerificationTest.php
  • tests/Feature/PasswordConfirmationTest.php
  • tests/Feature/PasswordResetTest.php
  • tests/Feature/RegistrationTest.php

引き続き、CSSなどのアセットをビルドします。

$ sail npm install
$ sail npm run dev

ログイン

以下のURLにアクセスします。

http://localhost/login

ログイン画面が表示されました。

ユーザを作成してみましょう。
ユーザ登録画面を開きます。任意でユーザを作成します。

http://localhost/register

ユーザ作成と同時にログインされ、ダッシュボード画面が表示されました。

ちなみにユーザ情報は、「users」テーブルに作成されます。

その他

初学者へ

Laravelを初めて触る方へ向け、手順やアドバイスをまとめました。

外部サーバーへ公開

作成したアプリは公開して使ってもらいましょう!
Laravelアプリケーションを外部公開する方法をまとめました。

脆弱性対策

脆弱性を抱えたアプリケーションの場合、攻撃を受ける可能性があり大変危険です。
作成したアプリケーションは、脆弱性対策も意識しましょう。

GitHubと連携

GitHubと連携する方法を解説しました。
プロジェクトの管理はGitHubを活用しましょう。

さいごに

簡単に認証機能が導入できました。
機会があれば、Jetstreamの認証機能の導入も試したいと思います。

他にも私のブログで、Laravelについて解説している記事がありますのでご覧ください。

\オススメ/

コメント

  1. Seiichi より:

    本日 午後にLaravel Breezeのインストールの件で質問させていただいた者です

    あれから色々調べましたら $ sail npm run dev の後に、画面がストップしていたよう見えた現象ですがViteというのが立ち上がっていただけでした

    https://github.com/laravel/vite-plugin/issues/28

    $ sail npm run build を行うことにより
    public/build が作成され css js が見れるようになり
    通常どおりログイン機能を実行することができました

タイトルとURLをコピーしました