ZendFramework-認証
認証は、あらゆるWebアプリケーションで最も重要で必須の機能の1つです。Zend Frameworkは、認証を処理するための別個のコンポーネントを提供します。これは、zend-authentication。
認証コンポーネントをインストールする
認証コンポーネントは、以下を使用してインストールできます Composer コマンド。
composer require zendframework/zend-authentication
概念
通常、開発者はphp関数を記述して、データソースに対してユーザーの詳細を認証します。認証が完了すると、認証の詳細は後続の要求のために保持されます。Zend Frameworkはこの概念を一般化し、以下で説明する2つのクラスを提供します。
クラス1Zend \ Authentication \ Adapter \ AdapterInterface
このクラスは、単一のメソッドを提供します。 authenticate認証ロジックを記述します。authenticateメソッドは、のインスタンスを返します。Zend\Authentication\Result クラス。
この Resultオブジェクトは認証ステータスを保持します。認証が成功した場合はID、認証が失敗した場合はエラーメッセージ。認証インターフェースと結果クラスのシグニチャは次のとおりです。
AdaptorInterface
namespace Zend\Authentication\Adaptor;
public function authenticate() {
// code
}
Result class
namespace Zend\Authentication;
class Result {
public function __construct($code, $identity, array $messages = []);
}
Zend Frameworkは、データベース、LDAP、http基本認証およびダイジェスト認証情報に対して認証するためのデフォルトの実装を提供します。アンAdaptor 認証しますが、将来の要求のために詳細を保持しません。
クラス2Zend \ Authentication \ AuthenticationService
AuthenticationServiceは主要なコンポーネントであり、認証の目的で構成済みのアダプターを使用します。認証が行われると、認証の詳細が保持され、メソッドが提供されます。hasIdentity() IDが利用可能かどうかを確認するには、 getIdentity() 認証の詳細を取得し、 clearIdentity() 認証の詳細をクリアします。
このAuthenticationServiceを使用するための部分的なコードリストは次のとおりです-
$adap = new Adapter($username, $password);
$auth = new AuthenticationService();
$result = $auth->authenticate($adap);
if($result->isValid) {
$identity = $auth->getIdentity();
} else {
// process $result->getMessages()
}
// clear
$auth->clearIdentity();
承認に関連するものは、2つの別個のモジュールとしてパッケージ化されています。 zend-permissions-acl そして zend-permissions-rbac。zend-permissions-aclはアクセス制御リストに基づいており、zend-permissions-rbacは役割ベースのアクセス制御リストに基づいています。これらは、ACLおよびRBACの概念の高レベルの抽象化を提供し、エンタープライズグレードのアプリケーションの作成を支援します。