ホームページ >PHPフレームワーク >Laravel >Laravel 開発: Laravel Passport と Lumen を使用して API 認証を実装するにはどうすればよいですか?
モバイル テクノロジーとクラウド コンピューティングの急速な発展に伴い、多くの企業が独自の API サービスを開発し、それを中核ビジネスの一部にしました。このプロセスでは、API データを保護し、許可されたユーザーのみがこの API データにアクセスできるようにすることが非常に重要になります。したがって、API 認証は重要なトピックになります。 LaravelおよびLumenでは、Laravel Passportを使用してAPI認証を実装できます。
Laravel Passport は、OAuth2 標準に基づいた API 認証システムです。 API 認証を簡単に作成する方法を提供し、複数のクライアントと認証方法をサポートします。この記事では、Laravel PassportとLumenを使用してAPI認証を実装する方法について説明します。
Laravel Passport のインストールと構成
まず、Laravel プロジェクトに Laravel Passport をインストールする必要があります。次のコマンドを使用してインストールします:
composer require laravel/passport
インストールが完了したら、次のコマンドを実行して必要な移行を実行する必要があります:
php artisan migrate php artisan passport:install
上記の passport:install
コマンドは認証用のクライアントとキーを作成します。また、スタートアップ サービス プロバイダーの Laravel Passport によって提供される Passport::routes() メソッドを使用して認証ルートを登録する必要があります。
// app/Providers/AuthServiceProvider.php use LaravelPassportPassport; // ... public function boot() { // ... Passport::routes(); }
これにより、Laravel Passport によって提供されるルートが登録され、それを使用できるようになります。認証。同時に、config/auth.php 設定ファイルで passport
ドライバーを選択する必要もあります:
'guards' => [ 'api' => [ 'driver' => 'passport', 'provider' => 'users', ], ],
Use Laravel Passport in Lumen
If our project Lumen フレームワーク Created を使用している場合は、Laravel Passport の Lumen バージョンを使用できます。これにより、Lumen と互換性を保つことができます。次のコマンドを使用して Laravel Passport をインストールできます:
composer require dusterio/lumen-passport
インストールが完了したら、次の 2 行のコードを bootstrap/app.php ファイルに追加して、Lumen Passport のサービスプロバイダーを登録する必要があります。 :
$app->register(DusterioLumenPassportPassportServiceProvider::class); $app->configure('auth');
登録が完了したら、ルーティングとミドルウェアを登録する必要があります。次のコードを app/Http/routes.php ファイルに追加して、Lumen Passport によって提供されるルートを登録できます。
$app->group(['middleware' => ['api']], function ($app) { DusterioLumenPassportLumenPassport::routes($app, ['prefix' => 'auth']); });
上記のコードでは、prefix
オプションでルート プレフィックスを指定します。 , middleware
は使用するミドルウェアを指定します。
次に、Lumen Passport が提供するミドルウェアを追加する必要があります。 bootstrap/app.php ファイルに、次のコードを追加してミドルウェアを登録します。
$app->middleware([ // ... DusterioLumenPassportHttpMiddlewareAddCustomHeaders::class, ]);
登録後、Luravel Passport を Lumen で使用するための設定が完了しました。
認証にパスワード認証を使用する
Laravel Passportの構成が完了したら、認証にパスワード認証を使用できるようになります。この認可方法では、クライアントはクライアント ID と秘密キーを使用してアクセス トークンをリクエストし、そのアクセス トークンを使用して保護された API リソースをリクエストする必要があります。
次のコードを使用してアクセス トークンをリクエストできます:
$postData = [ 'grant_type' => 'password', 'client_id' => '{client-id}', 'client_secret' => '{client-secret}', 'username' => '{username}', 'password' => '{password}', 'scope' => '', ]; $ch = curl_init('http://api.example.com/oauth/token'); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); $accessToken = json_decode($response)->access_token;
上記のコードでは、curl ライブラリを使用して API サービスからアクセス トークンをリクエストしました。 {client-id}
と {client-secret}
は、実際のクライアント ID とシークレット、{username}
と ## に置き換える必要があることに注意してください。 #{password} は実際のユーザー認証情報に置き換える必要があります。
$response = Http::withHeaders([ 'Authorization' => 'Bearer ' . $accessToken, ])->get('http://api.example.com/api/user');上記のコードでは、Laravel の HTTP クライアントを使用して API にアクセスします。クライアントがリクエストを行うと、API サービスがトークンを検証して保護されたリソースを返すことができるように、アクセス トークンを Authorization ヘッダーに置きます。 結論 Laravel Passport と Lumen を使用すると、API サービスに強力な認証機能を追加できます。 API 認証を実装する場合、OAuth2 認可プロトコルとその認可方法を理解する必要があります。パスワード認証を使用する場合、クライアントはクライアント ID と秘密キーを使用してアクセス トークンを要求する必要があります。アクセス トークンを取得したら、それを使用して保護された API リソースにアクセスできます。
以上がLaravel 開発: Laravel Passport と Lumen を使用して API 認証を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。