認証
はじめに
多くのWebアプリケーションは、ユーザーがアプリケーションに認証し「ログイン」する方法を提供しています。Webアプリケーションでこの機能を実装するこ とは複雑で、潜在的にリスクのある取り組みとなる可能性があります。そのため、Laravelは、認証を迅速かつ安全かつ簡単に実装するために必要なツールを提供することを目指しています。
基本的に、Laravelの認証機能は「ガード」と「プロバイダ」で構成されています。ガードは、各リクエストでユーザーが認証される方法を定義します。たとえば、Laravelには、セッションストレージとクッキーを使用して状態を維持する session
ガードが付属しています。
プロバイダは、永続的なストレージからユーザーを取得する方法を定義します。Laravel には、Eloquent やデータベースクエリビルダーを使用してユーザーを取得するサポートが付属しています。ただし、必要に応じてアプリケーションに追加のプロバイダを定義することができます。
アプリケーションの認証構成ファイルは config/auth.php
にあります。このファイルには、Laravel の認証サービスの動作を調整するためのいくつかのよく文書化されたオプションが含まれています。
ガードとプロバイダは、"ロール" と "権限" とは混同すべきではありません。権限を使用してユーザーアクションを承認する方法について詳しく知りたい場合は、認可 ドキュメントを参照してください。
スターターキット
すぐに始めたいですか?新しい Laravel アプリケーションに Laravel アプリケーションスターターキット をインストールしてください。データベースをマイグレーションした後、ブラウザを /register
またはアプリケーションに割り当てられた他の URL に移動します。スターターキットが、認証システム全体の骨組みを構築するのを手伝ってくれます!
最終的な Laravel アプリケーションでスターターキットを使用しないことを選択しても、Laravel Breeze スターターキットをインストールすることは、実際の Laravel プロジェクトで Laravel の認証機能をすべて実装する方法を学ぶ素晴らしい機会です。 Laravel Breeze は認証コントローラー、ルート、ビューを作成するため、これらのファイル内のコードを調べて、Laravel の認証機能がどのように実装されるかを学ぶことができます。
データベースに関する考慮事項
デフォルトでは、Laravel には app/Models
ディレクトリに App\Models\User
の Eloquent モデル が含まれています。このモデルは、デフォルトの Eloquent 認証ドライバーと共に使用できます。Eloquent を使用していない場合は、Laravel クエリビルダーを使用する database
認証プロバイダーを使用できます。
App\Models\User
モデルのデータベーススキーマを構築する際には、パスワード列が少なくとも 60 文字の長さであることを確認してください。もちろん、新しい Laravel アプリケーションに含まれる users
テーブルのマイグレーションは、この長さを超える列を既に作成しています。
また、users
(または同等の)テーブルに、100文字のnullableな文字列remember_token
カラムが含まれていることを確認する必要があります。このカラムは、アプリケーションにログインする際に「ログイン状態を保持する」オプションを選択したユーザーのトークンを格納するために使用されます。新しいLaravelアプリケーションに含まれるデフォルトのusers
テーブルマイグレーションには、このカラムが既に含まれています。