LaravelスターターキットにFortifyが使用・2段階認証(2要素認証)がデフォルトで利用可能に

Laravel

Laravelスターターキットは、認証まわりに Laravel Fortify を使うようになりました。

Fortifyは、ログイン・登録・パスワードリセット・メール認証・2段階認証(2FA)*などを提供する認証バックエンドです。

これによって、よりセキュリティ機能を追加のコーディングなしで利用可能となりました。変更点や、デフォルトで使える認証周りのあらたな機能をご紹介します。

*厳密にはFortify が提供するのは「2要素認証(Two-Factor Authentication)」です。ただ日本では一般的に「2段階認証」と呼ばれることが多いため、ここではその表現を使っています。

変更点

まずは変更点から。

ルート設定の変更

以前はroutes/auth.phpファイルに認証用ルート設定が書かれていました。現在は、下記のvendorディレクトリ以下に、認証用のルート設定ファイルがあります。

vendor/laravel/fortify/routes/routes.php

【routes.php】

なお、プロフィール変更用のルート設定は、以前と同様、routes/web.php内にあります。こちらには、後程ご紹介する2段階認証用のルート設定も追加されています。

【web.php】

認証機能(バックエンド)

たとえばスターターキットでLivewireを選択した場合は、Livewireによって認証処理が作成されていました。変更後は、Fortifyが使われています。

これに伴い、Livewire選択時には、app/Livewire/Authのファイルがなくなりました。

表示用のファイルについては、以前と変わらず、resources/views/livewire/authにあります。

ただ、コードは一部変わっています。

たとえばユーザー登録フォームには、次のようにLivewireを使ってフォーム送信時の処理が設定されていました。

【register.blade.php(以前)】

現在は、次のように通常のLaravelのルートが設定されています。

【register.blade.php(現在)】

なおReactとVue.jsの場合にも、Inertia.jsという技術を使用した実装になっていますが、いずれも、Fortifyを使って処理を行う流れに変更されています。

レート制限(Rate Limiting)

レート制限は以前も実装されていましたが、Fortifyでは、ログインや2段階認証実行時にレート制限が自動適用されます。

また、設定方法がより分かりやすくなりました。

app/Providers/FortifyServiceProvider.php内の configureRateLimiting() で設定されています。

【FortifyServiceProvider.php】

たとえば、次のようにログイン時のレート制限をLimit::perMinute(3) とすれば、1分以内に3回ログイン失敗で「Too Many Requests」 が返されます。

デフォルトで使える認証周りのあらたな機能

Fortifyによって、2要素認証(2FA)とリカバリーコード機能が使えるようになりました。

2段階認証(2FA)

Fortifyにより、ユーザーごとの2段階認証が標準で利用可能になりました。
ログイン後、ユーザー名をクリック(PCであれば画面左下・モバイルは画面右上)→「設定」→「2段階認証」から設定できます。

流れとしては、次の通りです。

  1. 【2段階認証】をクリック

  2. パスワードを再入力

  3. 【2段階認証を有効にする】をクリック

  4. QRコードを認証アプリ(Google Authenticator など)で登録

リカバリー機能

2段階認証を有効にすると、リカバリーコード(緊急用バックアップコード)が8個自動生成されます。

スマホの紛失や故障で認証アプリが使えなくなった場合でも、リカバリーコードを使えばログインできます。

さいごに

生成AI時代は、悪意ある人もAIを使って業務効率化ができてしまうので、セキュリティの懸念が一層増していると感じています。

今回の変更は、まさにそうした環境に対応するための改善といえます。

こういった時代に合わせたLaravel側の変更は、ありがたいなぁと感じます。

ただLaravel任せにせず、セキュリティ対策はいっそう厳しくしていきたいところ。WebアプリのセキュリティとLaravelの対策については、下記にシリーズ記事を連載中です。

ご興味あれば、併せて参考にしてください。

なお、本変更により、拙著「Laravelの教科書バージョン12」にも影響がでています。対応方法は下記FAQに掲載しております。

運営中の学習サイト「Laravelの教科書」も、今回の変更に合わせて変更済みです!

Laravelの教科書について詳しく知る

Laravel Laravelセキュリティ Laravelバージョンアップ・ニュース

生成AIを使ったコーディングに興味がある あなたへ

バイブコーディングセミナープレゼント

バイブコーディングセミナーの一部を無料でプレゼント!

プレゼント詳細を見てみる

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新版テキストに加え、Laravel8版~Laravel11版もご用意しています♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新版テキストに加え、Laravel8版からLaravel11版もご用意しています♪

Laravelの本を書きました。


ひつじが目印♪

Laravelの使い方を分かりやすく解説した書籍を出版しました。 ご好評につき、最新版に対応した改訂版を2025年7月に発売
書店やAmazon等のオンラインショップにて販売中です。 詳しくは下記ボタンをクリック

書籍の詳細を見てみる

Laravelの本書きました。


ひつじが目印♪
クリックするとamazonページへ。

Laravelの使い方を分かりやすく解説した書籍を出版しました。ご好評につき最新版対応の改訂版発売。書店やAmazon等のオンラインショップにて販売中です。

書籍の詳細を見てみる
Twitter始めました。
40代からプログラミング!
タイトルとURLをコピーしました