Laravel で API 認証にミドルウェアを使用する方法
ミドルウェアは、Laravel フレームワークで非常に重要な役割を果たします。HTTP で使用できます。一部のコード ロジックは、事前に実行されます。リクエストがアプリケーションに到達した後。 API アプリケーションを開発するときは、通常、正規のユーザーのみが機密データにアクセスしたり API を操作したりできるようにするためにユーザーを認証する必要があります。
この記事では、Laravel フレームワークをベースにした API 認証用のミドルウェアの具体例を紹介します。 API インターフェイスを保護するために、基本的なトークン認証スキームを実装します。
まず、トークンを検証するためのミドルウェアを作成する必要があります。次のコマンドを実行して、「ApiAuthMiddleware」という名前のミドルウェアを作成します。
php artisan make:middleware ApiAuthMiddleware
操作が成功すると、生成されたミドルウェア ファイルが app/Http/Middleware ディレクトリに表示されます。
次に、ApiAuthMiddleware にauthenticate() メソッドを実装します。これにより、リクエスト内のトークンが有効かどうかを検証します。
<?php namespace AppHttpMiddleware; use Closure; use IlluminateHttpRequest; class ApiAuthMiddleware { public function handle(Request $request, Closure $next) { $token = $request->header('Authorization'); if (!$token) { return response()->json(['message' => 'Token not provided'], 401); } // 这里可根据具体业务逻辑来验证Token的有效性,比如查询数据库或使用第三方服务进行验证 if ($token !== 'valid_token') { return response()->json(['message' => 'Invalid Token'], 401); } // Token验证通过,继续执行请求 return $next($request); } }
上記のコードでは、最初にリクエスト ヘッダーからトークンを取得します。 、特定のビジネス ロジックに基づいてトークンの有効性を検証します。トークンが存在しない場合、または検証が失敗した場合は、401 Unauthorized エラーが返されます。それ以外の場合は、リクエストが次のミドルウェアまたはルート ハンドラーに渡されます。
次に、API リクエストごとにトークン認証が行われるように、ApiAuthMiddleware をグローバル ミドルウェアとして登録する必要があります。 app/Http/Kernel.php ファイルの $routeMiddleware 配列に次のコードを追加します。
protected $routeMiddleware = [ // ... 'api.auth' => AppHttpMiddlewareApiAuthMiddleware::class, ];
上記のコードでは、ApiAuthMiddleware を「api.auth」ミドルウェア エイリアスとして登録します。
これで、API 認証を必要とするルートまたはコントローラー メソッドで「api.auth」ミドルウェアを使用できるようになりました。以下に例を示します。
<?php namespace AppHttpControllers; use IlluminateHttpRequest; class ApiController extends Controller { public function __construct() { $this->middleware('api.auth'); } public function getData(Request $request) { return response()->json(['message' => 'Authorized'], 200); } }
上記のコードでは、ApiController のコンストラクターで middleware() メソッドを使用して、「api.auth」ミドルウェアをそのコントローラーのすべてのメソッドに適用します。 getData() メソッドでは、単純な認証成功メッセージを返します。
ここで、「/api/data」への GET リクエストを開始すると、リクエストは最初に ApiAuthMiddleware によって認証されます。リクエスト内のトークンが有効な場合は、認証成功のメッセージが返されますが、そうでない場合は、401 Unauthorized エラーが返されます。
概要
API 認証にミドルウェアを使用すると、API インターフェイスを簡単に保護し、正当なユーザーのみにアクセスを許可できます。この記事では、カスタム ミドルウェアを作成および使用して、トークンの有効性を確認し、グローバル ミドルウェアとして登録する方法を学びました。
もちろん、これは単なる基本的な例であり、ビジネス ニーズに応じて認証ロジックを拡張およびカスタマイズできます。同時に、OAuth、JWT などの他のタイプの認証方法を使用することもできます。 Laravel フレームワークの強力なミドルウェア機能は、API 認証のための柔軟で簡単に拡張可能なソリューションを提供します。
以上がLaravelでAPI認証用のミドルウェアを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。