検索
ホームページPHPフレームワークLaravelLaravel 開発: Laravel Passport を使用して APIOAuth2 認証を実装するにはどうすればよいですか?

Laravel は非常に人気のある PHP フレームワークであり、使いやすく、拡張性が高く、コードの可読性が高いです。 Laravelでは、OAuth2認証を実装するためのAPIパッケージであるLaravel Passportをはじめ、さまざまな機能を実装するためのアドオンパッケージ(Package)も多数提供されています。

OAuth2 は、認証プロセスを簡素化する一般的な認証フレームワークであり、Web アプリケーションやモバイル アプリケーションで広く使用されています。 OAuth2 を使用するには、トークンを生成し、クライアントが API を使用できるようにする認可サーバーを実装する必要があります。 Laravel Passport は、OAuth2 認証を実装する簡単な方法を提供します。

この記事では、Laravel Passportを使用してOAuth2認証を実装する方法を紹介します。開始する前に、Laravel フレームワークがすでにインストールされていることを前提としています。

Laravel Passport のインストール

Composer を使用して Laravel Passport をインストールできます。 Laravel アプリケーションのルート ディレクトリで次のコマンドを実行します:

composer require laravel/passport

インストールが完了したら、次のコマンドを実行して Laravel Passport に必要なテーブルを作成する必要があります:

php artisan migrate

次次のコマンドを実行して、Laravel Passport が暗号化キーを生成するために必要なテーブルを作成します。

php artisan passport:install

生成されたキーは、生成されたトークンの暗号化に使用されます。

パスポートの設定

インストールが完了したら、アプリケーションで Laravel Passport を構成する必要があります。必要な手順は次のとおりです:

パスポートを有効にする

Laravel Passport を有効にするには、まず Passport::routes() メソッドを呼び出す必要があります。このメソッドは、必要なルートを登録します。

//在bootstrap/app.php文件中加入下面这行代码
LaravelPassportPassport::routes();

自動トークン更新を有効にする

デフォルトでは、トークンは期限切れになると自動的に期限切れになります。トークンの有効期限が切れた後にトークンを自動的に更新したい場合は、AuthServiceProvider の Passport::refreshTokensExpireIn() メソッドを使用できます。次のコード スニペットを AuthServiceProvider に追加します。

//在AppProvidersAuthServiceProvider.php文件中加入下面这段代码
use LaravelPassportPassport;

//其他代码...

public function boot()
{
    $this->registerPolicies();

    Passport::routes();

    Passport::tokensExpireIn(Carbon::now()->addDays(15));

    Passport::refreshTokensExpireIn(Carbon::now()->addDays(30));
}

この例では、tokensExpireIn() メソッドはトークンの有効期限を 15 日に設定し、refreshTokensExpireIn()メソッドは、自動的に更新されるトークンの有効期限を 30 日に設定します。

User モデルでの Passport の使用

次に、User モデルで Laravel Passport 機能を有効にする必要があります。これは、User クラスの Passport::use() メソッドを使用することで実現できます。

//在app/User.php文件中加入下面这段代码
use LaravelPassportHasApiTokens;

class User extends Authenticatable
{
    use HasApiTokens, Notifiable;
}

OAuth2 クライアントの作成

アプリケーションで OAuth2 認証を使用する場合は、次のように生成する必要があります。認可サーバー API トークン。認可サーバーと通信するには、クライアントを作成する必要があります。 passport:client コマンドを実行してクライアントを作成できます:

php artisan passport:client --password

このコマンドを実行すると、アプリケーション名の入力を求めるプロンプトが表示されます。名前を入力しない場合は、では、デフォルト値を使用して Just take a car を返すことを選択できます。

操作が完了すると、client_id と client_secret が生成されます。 client_id と client_secret は、認可サーバーとの通信に使用されます。

API ルートの作成

OAuth2 クライアントを作成した後、認可サーバーが API にアクセスできるように API ルートを作成する必要があります。

//在routes/api.php文件中加入以下代码
Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});

この例では、auth:api ミドルウェアを使用して指定されたルートに OAuth2 認証が必要です。有効な API トークンが指定されていない場合、このルートは 401 Unauthorized HTTP 応答を返します。

認証のために HTTP リクエストを送信する

これで、API にリクエストを送信し、OAuth2 資格情報を使用して認証する準備が整いました。

Postman などのツールを使用して API をテストできますが、リクエストには有効な API トークンが含まれている必要があります。 Postman では、リクエストに Authorization ヘッダーを含めることができます。たとえば、

Authorization: Bearer [access_token]

access_token は、以前に生成されたトークンに置き換える必要があります。

概要

Laravel Passport は、多くのコードを記述することなく API 認証を簡単に実装できる、使いやすい OAuth2 サーバーです。この記事では、Laravel Passport を使用して OAuth2 認証を実装する手順を説明し、OAuth2 クライアントと API ルートを作成して HTTP リクエスト経由で認証する方法を示しました。アプリケーションで API 認証を使用する必要がある場合、Laravel Passport は理想的な選択肢の 1 つとなる可能性があります。

以上がLaravel 開発: Laravel Passport を使用して APIOAuth2 認証を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
タスク管理ツール:リモートプロジェクトの進捗状況の優先順位付けと追跡タスク管理ツール:リモートプロジェクトの進捗状況の優先順位付けと追跡May 02, 2025 am 12:25 AM

Taskmanagementtoolsareessentialforeffectiveremoteprojectmanagementbyprioritizingtasksandtrackingprogress.1)UsetoolslikeTrelloandAsanatosetprioritieswithlabelsortags.2)EmploytoolslikeJiraandMonday.comforvisualtrackingwithGanttchartsandprogressbars.3)K

最新のLaravelバージョンはパフォーマンスをどのように改善しますか?最新のLaravelバージョンはパフォーマンスをどのように改善しますか?May 02, 2025 am 12:24 AM

laravel10EnhancesperformAnceTheveralkeyfeatures.1)ItintroduceSquerybuilderCachinucedatedatabaseload.2)itoptimizeseLoquentModelloadingwithlazingproxies.3)itimprovesRoutingWithineSystem.4)itemproveStingwithingingSystem.4)

フルスタックのLaravelアプリケーションの展開戦略フルスタックのLaravelアプリケーションの展開戦略May 02, 2025 am 12:22 AM

最高のフルスタックのLaravelアプリケーション展開戦略には、1。Zeroダウンタイム展開、2。ブルーグリーン展開、3。連続展開、4。Canaryリリースが含まれます。 1.ゼロダウンタイムデプロイメントは、EnvoyまたはDeployerを使用して展開プロセスを自動化して、更新時にアプリケーションを利用できるようにします。 2。ブルーとグリーンの展開により、2つの環境を維持し、迅速なロールバックを可能にすることにより、ダウンタイムの展開が可能になります。 3.継続的な展開GithubactionsまたはGitlabci/CDを使用して、展開プロセス全体を自動化します。 4。nginx構成を通じてカナリーがリリースされ、パフォーマンスの最適化と迅速なロールバックを確保するために、新しいバージョンをユーザーに徐々に宣伝します。

フルスタックのLaravelアプリケーションのスケーリング:ベストプラクティスとテクニックフルスタックのLaravelアプリケーションのスケーリング:ベストプラクティスとテクニックMay 02, 2025 am 12:22 AM

ToscalealAravelApplicationively、Focusondatabasesharding、Caching、Loadbalancing、andMicroservices.1)databaseShardingTodistributedataacrossMultipledatabase.2)uselaraval'scachingsmultedistestemedisemememememememedtededatedatab

静かな闘争:分散型チームのコミュニケーションの障壁を克服します静かな闘争:分散型チームのコミュニケーションの障壁を克服しますMay 02, 2025 am 12:20 AM

ToovercomcomcommunicationbarriersindistributedTeams、使用:1)VideoCallsForface-to-faceInteraction、2)setClearResponsetimeExpectations、3)ChooseaprateCommunicationSoools、4)CreateAmCommunicationGuide、and5)

フルスタックプロジェクトでのフロントエンドテンプレートにLaravel Bladeを使用しますフルスタックプロジェクトでのフロントエンドテンプレートにLaravel Bladeを使用しますMay 01, 2025 am 12:24 AM

laravelbladeEnhancesFrontendTemplatinginfull stackprojectsbyofferingcleansyntaxandpowerfulfeatures.1)itallows foreasyvariabledisplayandcontrolstructures.2)bladeSupportscreating andReusing components、

Laravelを使用したフルスタックアプリケーションの構築:実用的なチュートリアルLaravelを使用したフルスタックアプリケーションの構築:実用的なチュートリアルMay 01, 2025 am 12:23 AM

laravelisidealforfull-stackapplicationsduetoitseLegantyntax、包括的なセコスシステム、およびパワーフルフィーチュア

リモートロールが接続を維持するためにどのようなツールを使用しましたか?リモートロールが接続を維持するためにどのようなツールを使用しましたか?May 01, 2025 am 12:21 AM

forRemotework、iusezoomforvideocalls、slackformessaging、trelloforprojectmanagement、andgithubforcodecollaboration.1)zoomisReliaible forlargemeetingsbuthefreeversion.2)slackintegrateswellwithtoolSotoolsotification -ortificationoverload.3)trel

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール