ホームページ >バックエンド開発 >PHPチュートリアル >PHP 開発: Laravel Passport を使用した OAuth2 サービス プロバイダーの実装
モバイル インターネットの普及に伴い、ユーザーの認証と認可を必要とするアプリケーションがますます増えています。 OAuth2 は、これらの機能を実装するための標準化されたメカニズムをアプリケーションに提供する、一般的な認証および認可フレームワークです。 Laravel Passport は、使いやすく安全ですぐに使える OAuth2 サーバー実装であり、PHP 開発者に OAuth2 認証と認可を構築するための強力なツールを提供します。この記事では、PHP 開発者が OAuth2 の開発と応用をよりよく習得できるよう、Laravel Passport を使用する方法を紹介します。
Laravel Passport は、インストールが簡単、使いやすく、拡張が簡単で、信頼性の高い認証および認可メカニズムを提供する完全な OAuth2 サーバー実装です。 Passport は、JSON Web Token (JWT) を使用したトークン署名と検証もサポートしており、RESTful API で非常にシンプルな認証機能を提供します。もちろん、Laravel Passport を使用して OAuth2 サービスプロバイダーを開発するには、まず OAuth2 に関する理論的知識と関連する基本知識を習得する必要があります。
OAuth2 は、クライアント アプリケーションが認可サーバーを使用してユーザーによって認可されたリソースにアクセスできるようにする認可フレームワークです。 OAuth2 は HTTP ベースのプロトコルとして設計されており、ユーザーはサードパーティのクライアント アプリケーションが特定のリソース サーバー (イメージ サーバーやファイル サーバーなど) にアクセスし、まったく別のサーバーに保存されている情報にアクセスできるようにします。 OAuth2 プロトコルの中核となる概念は次のとおりです。
OAuth2 仕様では、開発者向けにいくつかの承認タイプが定義されています。これらの承認タイプには、次のようなさまざまな使用シナリオがあります。
OAuth2 の基本と Laravel Passport の概要を理解したので、実践段階に入ります。 Laravel Passportを使用してOAuth2サービスプロバイダーの実装を開始します。
3.1. Laravel Passport のインストール
Composer を使用して Laravel Passport をインストールし、ターミナルまたはコマンドライン プロンプトを開いて、次のコマンドを入力します:
composer require laravel/passport
Laravel のインストール後パスポート、データベース移行のためのコマンドを実行する必要があります:
php artisan migrate
3.2. OAuth2
を設定する Laravel Passport で、アクセス トークンをリクエストし、「クライアント」を通じてリソースを取得します。始める前に、いくつかのクライアントを作成する必要があります。 Passport 独自のコマンド passport:client を使用してクライアントを作成できます。
php artisan passport:client
このコマンドは、コンソールに作成されたクライアント ID と秘密キー、およびクライアント タイプ (パブリックまたは機密)、クライアントを表示します。エンドタイプによって、アクセストークンがどのように生成されるかが決まります。
次に、パスポートを認証プロバイダとして使用して、config/auth.php ファイルでガードとプロバイダを構成します。
'guards' => [ 'web' => [ 'driver' => 'session', 'provider' => 'users', ], 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ] 'providers' => [ 'users' => [ 'driver' => 'eloquent', 'model' => AppModelsUser::class, ], ],
上記のコード スニペットでは、「Gatekeeper」という名前の API のみを有効にしました。 、パスポート ゲートキーパーとして指定します ('driver' => 'passport')。
構成が完了したら、パスポート キーを再生成し、次のコマンドを実行する必要があります:
php artisan passport:keys
このコマンドを実行した後、OAuth2 サービス プロバイダーは構成を完了し、次のコマンドを実行します。 Laravel で OAuth2 アクセス トークンを作成します。
3.3. OAuth2 アクセス トークンの作成
OAuth2 を使用する場合、API エンドポイントを保護するために使用されるアクセス トークンを作成する必要があります。 Laravel PassortではOAuth2アクセストークンの生成が非常に簡単です。保護する必要があるルートでサンプル コードを作成できます。
Route::get('/user', function (Request $request) { return $request->user(); })->middleware('auth:api');
このルートは、アクセス トークンをチェックしてリクエストをユーザーに割り当てる auth:api ミドルウェアを使用します。
OAuth2 サービス プロバイダーとアクセス トークンが構成されたら、Postman を使用してテストできます。 Postman を使用して GET リクエストを作成し、ユーザーがアクセス トークンを取得できるかどうか、またはアクセス トークンを使用して保護されたルートを取得できるかどうかを問い合わせることができます。 Postman では、ユーザーは保護されたルートにアクセスするために認証を必要とします。サンプル コードは次のとおりです。
GET http://localhost:8000/api/user Authorization : Bearer {access token}
サンプル コードでは、GET リクエストを送信し、OAuth2 アクセス トークンを使用して認証します。すべてがうまくいけば、API は要求された保護された情報を返します。
この記事では、Laravel Passport の使用方法を紹介しました。これで、OAuth2 仕様と Passport を使用して、PHP アプリケーションで安全かつ効率的な ID を作成する方法をマスターできました。認可メカニズム。 Passport を使用すると、開発の複雑さが軽減され、開発速度が向上するため、Laravel で RESTful API やモバイル アプリケーションを構築する開発者にとって非常に役立ちます。この記事が PHP 開発者にとって参考になり、役立つことを願っています。
以上がPHP 開発: Laravel Passport を使用した OAuth2 サービス プロバイダーの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。