ホームページ > 記事 > PHPフレームワーク > Laravel の認証方法
Laravel は、現在最も人気のある PHP フレームワークの 1 つです。多くの機能が提供されますが、最も一般的に使用されるのはユーザーの認証と認可です。 Laravel は、Laravel アプリケーションに簡単に統合できる、豊富でありながらシンプルな認証システムを提供します。この記事では、Laravel がどのように認証を行うかを紹介します。
Laravel 認証の基本概念
Laravel 認証は、ログイン、登録、ログアウト、その他の操作を処理するために利用可能なルートとメソッドを多数提供します。詳細について説明する前に、Laravel 認証の基本概念を理解する必要があります。
User モデル: Laravel はユーザーを表すために User モデルを使用します。 Laravelでユーザーモデルを作成するのは非常に簡単で、artisanコマンドを実行するだけです: php army make:model User
Guard: Laravelでは、guardは特定の認証を指定するために使用される名前です。 Web や API などのレイヤー。
サービスプロバイダー: サービスプロバイダーは、Laravel フレームワークの最も基本的なコンポーネントの 1 つです。各サービス プロバイダーは、サービスを登録したり、インターフェイスと実装をバインドしたりするために使用されます。
認証プロバイダー: 認証プロバイダーは、認証の実際の実装者です。 Laravel はデフォルトで EloquentAuthenticationProvider を使用します。これは、User モデルを使用してユーザー資格情報を認証します。
Laravel で認証する方法
Laravel 認証の基本概念を理解したので、Laravel で認証する方法の紹介を開始できます。 Laravel での認証にはいくつかの手順があります。
ステップ 1: Guard の設定
Laravel 認証の使用を開始するには、まず config/auth.php ファイルで Guard を設定する必要があります。 Guard を使用すると、Web 認証や API 認証など、アプリケーションでさまざまな認証構成を指定できます。 Laravel は、セッションベースの Web アプリケーション用に次の Guard:
Guard の構成は簡単なプロセスです。 config/auth.php ファイルで Guards 配列を見つけて、次の内容を追加します。
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'token', 'provider' => 'users', ], ],
上記のコードでは、web と api という 2 つの Guard を定義します。
ステップ 2: 認証されたユーザー モデルを定義する
Laravel には検証用のユーザー モデルが必要です。 Laravel のデフォルト設定を使用する場合は、User というモデルがすでに存在するため、それを定義する必要はありません。他の場合には、User モデルのテーブルと認証フィールドを指定する必要があります。
protected $table = 'your_user_table_name'; public function getAuthPassword() { return $this->your_password_column_name; }
ステップ 3: 認証ルートを作成する
web.php ファイルで、一連の認証ルートを簡単に作成できます。このルートのセットは、登録、ログイン、ログアウトなどの操作を提供します。次のコード例は、Laravel で認証ルートを作成する方法を示しています。
Route::get('login', 'Auth\LoginController@showLoginForm')->name('login'); Route::post('login', 'Auth\LoginController@login'); Route::post('logout', 'Auth\LoginController@logout')->name('logout');
ステップ 4: 認証コントローラーを生成する
次に、認証ルートのコントローラーを作成する必要があります。 make:auth Artisan コマンドを使用すると、デフォルトのコントローラとルートをすばやく作成できます。これにより、次のファイルが作成されます:
これで、これらのコントローラーとビューで適切なカスタマイズを行うことができます。
ステップ 5: 認証プロバイダーを設定する
AuthenticationProvider は、ユーザーの資格情報を検証するために使用されるクラスです。 Laravel では、EloquentAuthenticationProvider がデフォルトで使用されます。認証プロバイダーのユーザー モデルと認証フィールドを指定します。
protected $model; public function __construct(User $model) { $this->model = $model; } public function retrieveById($identifier) { return $this->model->find($identifier); } public function retrieveByCredentials(array $credentials) { return $this->model->where('email', $credentials['email'])->first(); } public function validateCredentials(UserContract $user, array $credentials) { return Hash::check($credentials['password'], $user->getAuthPassword()); }
上記のコードはデフォルトの EloquentAuthenticationProvider プロバイダーであり、これに基づいてカスタマイズできます。もちろん、独自のプロバイダーを実装することもできます。
ステップ 6: 認証に Auth ファサードを使用する
Laravel では、Auth ファサードを使用してユーザー認証を実装できます。認証検証を使用すると、ユーザーがログインしているか、認証されているかなどを簡単に確認できます。
ログインしたかどうかを検出する
if (Auth::check()) { // 已经登录,继续操作 } else { // 未登录,跳转到登录页面 return redirect('login'); }
認証を実行する
$credentials = [ 'email' => $email, 'password' => $password, ]; if (Auth::attempt($credentials)) { // 验证成功 } else { // 验证失败 }
ログアウト
Auth::logout();
すべての手順を完了すると、Laravelにユーザー認証を実装できます。 。 Laravel の主要な認証概念とプロセスをマスターしたので、これを使用して、独自のアプリケーションに強力かつシンプルなユーザー認証を提供できます。
以上がLaravel の認証方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。