Slim フレームワークで認証を実装する方法

PHPz
リリース: 2023-07-30 19:06:02
オリジナル
908 人が閲覧しました

Slim フレームワークで認証を実装する方法

Slim は、シンプルで高速で保守が容易な Web アプリケーションを構築するために広く使用されている軽量の PHP フレームワークです。 Web アプリケーションを開発する場合、認証はユーザー データとシステム セキュリティを保護するために非常に重要な部分です。この記事では、Slim フレームワークで認証を実装する方法を説明し、対応するコード例を示します。

  1. Slim フレームワークのインストール

まず、PHP 環境に Slim フレームワークをインストールする必要があります。 Composer を通じてインストールできます。次のコマンドを実行するだけです:

composer require slim/slim
ログイン後にコピー
  1. Create Slim Application

新しい PHP ファイルを作成し、次のコードを記述して単純な Slim を作成します。 application:

<?php
use SlimFactoryAppFactory;

require __DIR__ . '/vendor/autoload.php';

$app = AppFactory::create();

$app->run();
ログイン後にコピー

ファイルを保存して実行し、URL http://localhost:8000/ にアクセスすると、Slim のデフォルトのようこそページが表示されます。

  1. 認証ミドルウェアの作成

新しい 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 をスローできます。それ以外の場合は、リクエストの処理を続行し、応答を返します。

  1. 認証ミドルウェアの登録

前の Slim アプリケーション ファイルを変更し、次のコードを追加して認証ミドルウェアを登録します:

$app->add(new AuthMiddleware());
ログイン後にコピー

今度は、すべてのリクエストがスルーされます。 Slim アプリケーションは認証ミドルウェアを通過します。認証に失敗した場合は、401 (Unauthorized) エラーが返されます。

  1. 認証ミドルウェアの使用

認証ミドルウェアを使用して特定のルートまたはルート グループを保護するには、対応するルート定義にミドルウェアを追加します。たとえば、「/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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート