Zend Framework は、スケーラブルな Web アプリケーションを構築するための多くの強力なツールとコンポーネントを提供する、PHP ベースのオープン ソース フレームワークです。この記事では、Zend Framework のミドルウェアを使用して、Web アプリケーションにソーシャル ログイン機能を追加する方法を紹介します。
ミドルウェアは、リクエストがアプリケーションに入る前または後に実行されるコードのタイプです。これにより、開発者はリクエストを処理するプロセスをカスタマイズおよび拡張できます。 Zend Framework は、ミドルウェアを定義して使用するための柔軟な方法を提供します。
まず、Zend Framework と関連コンポーネントをインストールする必要があります。依存関係は Composer を使用して管理できます。コマンド ラインで次のコマンドを実行します。
composer require zendframework/zend-expressive zendframework/zend-diactoros
インストールが完了したら、単純なソーシャル ログイン ミドルウェアを作成できます。まず、プロジェクト ディレクトリに SocialMiddleware.php
ファイルを作成し、そのファイルに次のコードを追加します。
<?php namespace AppMiddleware; use PsrHttpMessageServerRequestInterface as Request; use PsrHttpMessageResponseInterface as Response; use ZendDiactorosResponseRedirectResponse; use ZendExpressiveHelperUrlHelper; class SocialMiddleware { private $urlHelper; public function __construct(UrlHelper $urlHelper) { $this->urlHelper = $urlHelper; } public function __invoke(Request $request, Response $response, callable $next = null) { if (!$this->isLoggedIn()) { // 用户未登录,重定向到登录页面 $loginUrl = $this->urlHelper->generate('login'); return new RedirectResponse($loginUrl); } // 用户已登录,继续处理请求 return $next($request, $response); } private function isLoggedIn() { // 检查用户是否已登录,这里只是一个示例 return isset($_SESSION['user']); } }
上記のミドルウェアの基本的な考え方は次のとおりです。
config/pipeline.php ファイルを開き、
return $pipeline;:
$app->pipe('/admin', AppMiddlewareSocialMiddleware::class);
/admin## の前に次のコードを追加します。 #ミドルウェア アプリケーションのパスを示します。AppMiddlewareSocialMiddleware::class
はミドルウェアのクラス名です。 最後に、ログイン ロジックを処理するルートを定義する必要があります。
ファイルを開き、次のコードを追加します。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>$app->get('/login', AppActionLoginAction::class, 'login');
$app->get('/admin/dashboard', AppActionDashboardAction::class, 'dashboard');</pre><div class="contentsignin">ログイン後にコピー</div></div>
上記のコードは、
パスを AppActionLoginAction::class# にマップします。 ## 、
/admin/dashboard パスを
AppActionDashboardAction::class にマップします。
これまでに、Zend Framework ミドルウェアを使用してソーシャル ログイン機能を実装するコードが完成しました。
AppActionLoginAction
では、OAuth や OpenID Connect などの適切なソーシャル ログイン ライブラリを使用して、実際のログイン ロジックを処理できます。AppActionDashboardAction
では、ユーザーのダッシュボード インターフェイスをレンダリングできます。 この機能をテストするには、組み込みの PHP 開発サーバーを起動します:
php -S localhost:8000 -t public/
以上はZend Frameworkのミドルウェアとソーシャルログイン機能の紹介です。この記事がお役に立てば幸いです!
以上がZend Framework ミドルウェア: Web アプリケーションにソーシャル ログイン機能を追加の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。