認証とは
認証(Authentication)とは、アクセスしてきたユーザーが「誰であるか」を確認する仕組みです。 Webアプリケーションでは、ログインフォームでメールアドレスとパスワードを受け取り、正しければセッションにユーザー情報を保存します。 以降のリクエストではそのセッションを参照してユーザーを識別します。 Laravelの認証機能は「ガード」と「プロバイダー」という2つの概念で構成されています。- ガード: 各リクエストでユーザーをどう認証するかを定義します。デフォルトは
sessionガードで、セッションとCookieを使って状態を管理します。 - プロバイダー: ユーザーをデータベースからどう取得するかを定義します。デフォルトはEloquentを使います。
認証の設定ファイルは
config/auth.php です。デフォルト設定のままほとんどのWebアプリケーションに対応できます。スターターキットによる認証
Laravelでは、laravel new でアプリケーションを作成するときにスターターキットを選ぶだけで、ログイン・登録・パスワードリセットなどの認証機能が自動的に構築されます。これが最も推奨される方法です。
1
アプリケーションを作成する
Laravelインストーラーでアプリケーションを作成します。途中でスターターキットを選択するプロンプトが表示されます。スターターキットとして React、Vue、Livewire、Svelte から選択できます。
チームの技術スタックに合わせて選んでください。
2
フロントエンドの依存関係をインストールする
3
データベースを準備する
.env ファイルのデータベース設定を確認した上で、マイグレーションを実行します。users テーブルを含む初期マイグレーションが適用されます。4
開発サーバーを起動する
http://localhost:8000 にアクセスすると、ナビゲーションに「Register」と「Log in」リンクが表示されます。
/register にアクセスしてユーザーを登録してみましょう。利用可能なスターターキット
React
React 19・TypeScript・Tailwind・shadcn/ui を使ったモダンなSPAを構築できます。 Inertia を使うことで、サーバーサイドルーティングを維持しながらReactのフロントエンドを利用できます。Vue
Vue Composition API・TypeScript・Tailwind・shadcn-vue を採用しています。 Reactと同様にInertiaを使ってサーバーサイドと連携します。Livewire
PHPだけで動的なUIを構築できるLivewireを使います。 Bladeテンプレートが中心のチームや、JavaScriptフレームワークを使わずに済ませたい場合に最適です。 Flux UI コンポーネントライブラリが含まれています。Svelte
Svelte 5・TypeScript・Tailwind・shadcn-svelte を使います。 Inertiaと組み合わせてモダンなSPAを構築できます。認証ファサード
Auth ファサードを使うと、現在認証されているユーザーの情報を取得したり、認証状態を確認したりできます。
認証済みユーザーの取得
Request オブジェクトからもユーザーを取得できます。
認証状態の確認
Auth::check() は、ユーザーがログインしているかどうかを true / false で返します。
@auth と @guest ディレクティブを使うと便利です。
ルートの保護
ログイン済みのユーザーだけがアクセスできるルートを作るには、auth ミドルウェアを使います。
/login にリダイレクトされます。
複数のルートをまとめて保護するにはグループを使います。
ゲスト専用ルート
ログイン済みユーザーをリダイレクトするにはguest ミドルウェアを使います。
ログインページや登録ページに適用することで、すでにログインしているユーザーをダッシュボードに転送できます。
手動認証
スターターキットを使わずに手動でログイン処理を実装するにはAuth::attempt() を使います。
Auth::attempt() の第1引数に認証情報の配列を渡します。
パスワードは自動的にハッシュと比較されるので、平文のまま渡してください。
「ログイン状態を保持する」機能を実装するには、第2引数に true を渡します。
手動認証を実装する場合も、スターターキットのコードを参考にするのがおすすめです。安全な実装のお手本として活用できます。
ログアウト
ユーザーをログアウトさせるにはAuth::logout() を呼び出します。
セッションの無効化とCSRFトークンの再生成も合わせて行うのがベストプラクティスです。
まとめ
次のステップ
ミドルウェア
auth ミドルウェアの仕組みや独自ミドルウェアの作り方を詳しく学びます。