ホームページ >PHPフレームワーク >Laravel >Laravel 開発: Laravel Passport を使用して OAuth2 認証を実装するにはどうすればよいですか?
Laravel 開発: Laravel Passport を使用して OAuth2 認証を実装するにはどうすればよいですか?
Laravel は、効率的でスケーラブルで保守しやすい Web アプリケーションを簡単に構築できる人気の PHP Web 開発フレームワークです。 Laravelには、Laravel Passportを含む多くの機能とコンポーネントがあります。 Laravel Passport は、開発者が安全な認証をアプリケーションに簡単に追加できるようにする完全な OAuth2 サーバー実装です。
OAuth2 は API を保護するための認証標準であり、サードパーティ アプリケーションが API を介してユーザー データにアクセスできるようにする安全な方法です。これは、Facebook、Google、GitHub、Twitter など、多くの企業や組織で使用されているオープン スタンダードです。 Laravel Passport は、Laravel フレームワークの公式 OAuth2 サーバー実装です。
以下では、Laravel Passportを使用してOAuth2認証を実装する方法を説明します。
ステップ 1: Laravel Passport をインストールする
Composer を使用して Laravel Passport をインストールします。コマンド ラインで次のコマンドを入力します:
composer require laravel/passport
インストールが完了したら、次のコマンドを実行して Passport の構成ファイルとデータベースの移行を公開します:
php artisan passport:install
このコマンドは暗号化キーを次のように作成します。アクセス トークンのデータベース テーブルも同様です。
ステップ 2: パスポートを設定する
Laravel アプリケーションでパスポートを有効にします。 config/app.php
ファイルを編集し、LaravelPassportPassportServiceProvider::class,
を Provide 配列に追加します。
#LaravelPassportHasApiTokens トレイトを
AppUser モデルに実装します。このトレイトは、API ユーザーに関連するいくつかのメソッドをユーザー モデルに追加します。
php artisan migrateステップ 3: Passport でクライアントをセットアップするPassport は内部で OAuth2 クライアント/サーバー モデルを使用します。開発者は、クライアント用に一意の「クライアント ID」と「クライアント シークレット」を作成する必要があります。 Laravel Passport では、新しいクライアントを作成するには、
php Artisan Passport:client コマンドを使用します。このコマンドはクライアント ID とクライアント シークレットを生成します。これらは API で使用できるように適切に保存する必要があります。
php artisan passport:client --clientステップ 4: API ルートの定義API ルートを
routes/api.php ファイルで定義します。 Passport には、リクエストに有効なアクセス トークンが含まれているかどうかを確認するための
auth:api というミドルウェアが含まれています。保護されたルートを保護するには、必ずこのミドルウェアを使用してください。
Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); });ステップ 5: アクセス トークンの生成アクセス トークンを生成する前に、ユーザーはクライアントが自分のデータにアクセスすることを承認する必要があります。 API アプリケーションの場合、フロントエンドでユーザーに認証インターフェイスを表示し、ユーザーがクライアントによるデータへのアクセスを認証できるようにする必要があります。 アクセス トークンを生成するには、POST リクエストを Laravel アプリケーションに送信します。 POST アクセス トークン リクエストには、クライアント ID、クライアント シークレット、ユーザー名、およびパスワードが含まれている必要があります。リクエストが成功すると、Passport はアクセス トークンをアプリケーションに返します。
POST /oauth/token HTTP/1.1 Host: your-app.com Content-Type: application/x-www-form-urlencoded grant_type=password& client_id=client-id& client_secret=client-secret& username=user@your-app.com& password=user-password&アクセス トークンの応答は次のようになります。
{ "token_type": "Bearer", "expires_in": 31536000, "access_token": "eyJ0eXAiOiJKV1QiLCJ...", "refresh_token": "def5020086062f..." }passport:install コマンドを渡すと、アクセス トークンの生成に使用される暗号化キーが生成されることに注意してください。 ステップ 6: アクセス トークンを使用して API を呼び出す最後に、アクセス トークンを使用して、保護された API エンドポイントを呼び出します。リクエストのヘッダーを設定するときは、必ずベアラー認証プロトコルを使用し、リクエストに「Authorization」ヘッダーを指定してください。 例:
GET /api/user HTTP/1.1 Host: your-app.com Authorization: Bearer eyJ0eXAiOiJKV1QiLCJ...これは、現在認証されているユーザーの JSON 表現を返します。 結論: Laravel Passport は、OAuth2 認証フローを実装する便利な方法を提供します。これにより、開発者は OAuth2 機能を Laravel アプリケーションに迅速に追加し、API の安全性を高めることができます。上記の手順を通じて、Laravel Passport を使用して Laravel に OAuth2 認証を実装する方法を学習できます。
以上がLaravel 開発: Laravel Passport を使用して OAuth2 認証を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。