Laravel 10 入門トップページ


目次

  1. 全体の概要
  2. Laravel によるユーザ認証
    1. 概要
    2. プロジェクトの作成と初期設定
    3. メールの設定
    4. Laravel Breeze のインストール
    5. ユーザ登録機能の動作確認
    6. シーダによるテストユーザの登録
    7. テーブルにログイン ID の属性を追加
    8. ユーザ登録機能の修正
    9. ログイン ID でログインするように変更
    10. メールアドレスの検証
    11. シーダの修正
    12. 検証メールの有効期限と再送信
    13. セッション継続時間の確認と変更
    14. メールアドレスの変更
    15. パスワードの変更
    16. アカウントの削除
  3. ユーザ認証を備えたコメント掲示板の開発
  4. マルチ認証の実現

Laravel でユーザ認証とマルチ認証を実現する

Laravel によるユーザ認証

Laravel Breeze のインストール

Laravel 10 では Laravel Breeze をインストールするだけでユーザ認証の機能をシステムに追加することができてしまいます.具体的にはログイン,ユーザ登録,パスワードリセット,メール確認,パスワード確認など必要な認証機能ほぼ全てが実装されています.また,ユーザ名やメールアドレス,パスワードの変更機能もインストールするだけで利用できるようになります.

なお,Laravel Breeze のデフォルトビューは,Tailwind CSS でスタイリングされます.ここのページでは Bootstrap を利用しましたが,以降のページでは Tailwind CSS スタイリングすることにします.

まず,次のコマンドのように composer を使って laravel/breeze をインストールします.このコマンドで laravel/breeze とそれに必要な幾つかのパッケージもインストールされます.

vagrant@ubuntu2204 laravelAuth $ php ../composer.phar require laravel/breeze --dev ⏎
./composer.json has been updated
Running composer update laravel/breeze
Loading composer repositories with package information
Updating dependencies
Lock file operations: 1 install, 0 updates, 0 removals
  - Locking laravel/breeze (v1.26.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Downloading laravel/breeze (v1.26.0)
  - Installing laravel/breeze (v1.26.0): Extracting archive
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi

   INFO  Discovering packages.

  laravel/breeze ............................... DONE
  laravel/sail ................................. DONE
  laravel/sanctum .............................. DONE
  laravel/tinker ............................... DONE
  nesbot/carbon ................................ DONE
  nunomaduro/collision ......................... DONE
  nunomaduro/termwind .......................... DONE
  spatie/laravel-ignition ...................... DONE

82 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force

   INFO  No publishable resources for tag [laravel-assets].

No security vulnerability advisories found.
Using version ^1.26 for laravel/breeze
vagrant@ubuntu2204 laravelAuth $

Tailwind CSS のためには Node.jsnpm が必要です.しかし,ここの手順に従って仮想環境を構築した場合には,すでに必要なバージョンの npm がインストールされているはずですので,次のステップに進んでください.一方で別の方法で環境を構築した場合にはインストールされた npm のバージョンが古いことがあり,そのような場合に動作しない可能性があります.次の一連のコマンドを順番に実行するとインストールとアップデートが可能です.

sudo apt-get update
sudo apt-get install node.js
sudo apt-get install npm
sudo npm cache clean
sudo npm install -g n
sudo n stable
sudo n latest
sudo ln -sf /usr/local/bin/node /usr/bin/node
sudo ln -sf /usr/local/bin/npm /usr/bin/npm

次のコマンドで Breeze 用の blade テンプレートを構築してインストールします.

vagrant@ubuntu2204 laravelAuth $ php artisan breeze:install blade ⏎

   INFO  Installing and building Node dependencies.


added 111 packages, and audited 112 packages in 24s

22 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
npm notice
npm notice New minor version of npm available! 10.1.0 -> 10.2.3
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.2.3
npm notice Run npm install -g npm@10.2.3 to update!
npm notice

> build
> vite build

vite v4.5.0 building for production...
✓ 47 modules transformed.
public/build/manifest.json             0.26 kB │ gzip:  0.13 kB
public/build/assets/app-550d0007.css  30.15 kB │ gzip:  5.86 kB
public/build/assets/app-63bb58ea.js   72.12 kB │ gzip: 26.78 kB
✓ built in 1.89s


   INFO  Breeze scaffolding installed successfully.

vagrant@ubuntu2204 laravelAuth $

さらにデータベースのマイグレーションを行います.

vagrant@ubuntu2204 laravelAuth $ php artisan migrate ⏎

   INFO  Preparing database.

  Creating migration table .................................. 13ms DONE

   INFO  Running migrations.

  2014_10_12_000000_create_users_table ...................... 12ms DONE
  2014_10_12_100000_create_password_reset_tokens_table ....... 6ms DONE
  2019_08_19_000000_create_failed_jobs_table ................ 11ms DONE
  2019_12_14_000001_create_personal_access_tokens_table ..... 17ms DONE

vagrant@ubuntu2204 laravelAuth $ php artisan migrate:status ⏎

  Migration name ....................................... Batch / Status
  2014_10_12_000000_create_users_table ........................ [1] Ran
  2014_10_12_100000_create_password_reset_tokens_table ........ [1] Ran
  2019_08_19_000000_create_failed_jobs_table .................. [1] Ran
  2019_12_14_000001_create_personal_access_tokens_table ....... [1] Ran

vagrant@ubuntu2204 laravelAuth $

次に,npm のインストールを行います.

vagrant@ubuntu2204 laravelAuth $ npm install ⏎

up to date, audited 112 packages in 855ms

22 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities
vagrant@ubuntu2204 laravelAuth $

最後に Tailwind の css をコンパイルします.このコマンドは今後も頻繁に実行することになります.

vagrant@ubuntu2204 laravelAuth $ npm run build ⏎

> build
> vite build

vite v4.5.0 building for production...
✓ 47 modules transformed.
public/build/manifest.json             0.26 kB │ gzip:  0.13 kB
public/build/assets/app-dac56a0f.css  30.76 kB │ gzip:  5.97 kB
public/build/assets/app-63bb58ea.js   72.12 kB │ gzip: 26.78 kB
✓ built in 1.78s
vagrant@ubuntu2204 laravelAuth $

以上の手順で Laravel Breeze を使ったユーザ認証機能が利用できるようになりました.次のページでは実際にユーザ登録を行って動作を確認します.

目次に戻る