Slim フレームワークで認証を実装する方法
Slim は、シンプルで高速で保守が容易な Web アプリケーションを構築するために広く使用されている軽量の PHP フレームワークです。 Web アプリケーションを開発する場合、認証はユーザー データとシステム セキュリティを保護するために非常に重要な部分です。この記事では、Slim フレームワークで認証を実装する方法を説明し、対応するコード例を示します。
まず、PHP 環境に Slim フレームワークをインストールする必要があります。 Composer を通じてインストールできます。次のコマンドを実行するだけです:
composer require slim/slim
新しい PHP ファイルを作成し、次のコードを記述して単純な Slim を作成します。 application:
<?php use SlimFactoryAppFactory; require __DIR__ . '/vendor/autoload.php'; $app = AppFactory::create(); $app->run();
ファイルを保存して実行し、URL http://localhost:8000/ にアクセスすると、Slim のデフォルトのようこそページが表示されます。
新しい PHP ファイルを作成し、次のコードを記述して認証ミドルウェアを作成します。
<?php use PsrHttpMessageResponseInterface as Response; use PsrHttpMessageServerRequestInterface as Request; use SlimExceptionHttpUnauthorizedException; class AuthMiddleware { public function __invoke(Request $request, Response $response, $next) { // 在这里进行身份验证逻辑,例如检查会话或令牌 $authenticated = true; // 假设验证通过 if (!$authenticated) { throw new HttpUnauthorizedException($request); } $response = $next($request, $response); return $response; } }
In 上記のコードでは、このクラスのデフォルトの呼び出しメソッドである __invoke メソッドを実装する AuthMiddleware クラスを作成しました。このメソッドでは、認証ロジックを実行し、認証が失敗した場合に HttpUnauthorizedException をスローできます。それ以外の場合は、リクエストの処理を続行し、応答を返します。
前の Slim アプリケーション ファイルを変更し、次のコードを追加して認証ミドルウェアを登録します:
$app->add(new AuthMiddleware());
今度は、すべてのリクエストがスルーされます。 Slim アプリケーションは認証ミドルウェアを通過します。認証に失敗した場合は、401 (Unauthorized) エラーが返されます。
認証ミドルウェアを使用して特定のルートまたはルート グループを保護するには、対応するルート定義にミドルウェアを追加します。たとえば、「/api/users」ルートを保護するには、アプリケーション ファイルに次のコードを追加します。
$app->group('/api', function ($app) { $app->group('/users', function ($app) { $app->get('', function (Request $request, Response $response, $args) { // 这里是受保护的代码 return $response->getBody()->write('Authenticated!'); }); }); })->add(new AuthMiddleware());
上の例では、$app->group を使用してルーティング グループを作成しました。メソッド。これには、保護された「/api/users」ルートが含まれます。次に、AuthMiddleware ミドルウェアをこのルーティング グループに追加します。
これで、「/api/users」にアクセスすると、認証が成功すると「Authenticated!」が返されます。
これまでのところ、Slim フレームワークでの認証の実装は成功しています。認証ミドルウェアを使用すると、各リクエストの前に認証チェックを実行することで、許可されたユーザーのみが保護されたルートにアクセスできるようにすることができます。ミドルウェアをさまざまなルーティング グループに追加することで、必要に応じてさまざまな API やページを保護できます。
実際のアプリケーションでは、特定のビジネス ニーズや ID 認証方法に応じて、対応する変更や拡張を行うことができます。たとえば、データベース内のユーザー情報に基づいて認証したり、検証に JWT トークンを使用したりできます。
この記事が、Slim フレームワークでの認証機能の実装に役立つことを願っています。
以上がSlim フレームワークで認証を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。