zf2アプリケーションにヘッダ認証を追加しようとしています。リスナをディスパッチイベントにバインドしています。zf2:SharedEventManagerからコントローラへのパラメータ
リスナーはディスパッチ時に正しく実行され、エラーを返し、レスポンスが伝播するのを止めます。
問題は、すべてがうまくいけば、コントローラから取得できるように、リクエストの現在のユーザーパラメータを設定したいと思います。ここで
が今私のコードです:
Module.php
public function onBootstrap(MvcEvent $event)
{
$app = $event->getApplication();
$sm = $app->getServiceManager();
$em = $app->getEventManager();
$listener = $sm->get('MyAuthListener');
$em->getSharedManager()->attach(
'eventIdentifierForMyAbstractController',
MvcEvent::EVENT_DISPATCH,
$listener
);
}`
このリスナーは、作業を行うことになって1です。
public function __invoke(MvcEvent $event)
{
$result = $this->adapter->authenticate();
if (!$result->isValid()) {
//Invalidation process
}
/validation Process
$event->setParam('user', $result->getIdentity());
}
私の側ではほとんどすべてが機能します。 $result->getIdentity()
は私に適切なアイデンティティを与えています。 $event->setParam('user', $result->getIdentity())
は、リスナー内のイベントにIDを正しく設定します。 (すなわち= {}
) $this->getEvent()->getParam('user')
パラメータが空ですが、私var_dump($result->getIdentity())
場合、オブジェクトが完全に作成されます。
私はパラメータ$this->getEvent()->getParam('hello', 'hello')
を渡すことができ、これはうまくいきます。
私は理由を理解できません。ドキュメントには混在型が予想されるため、OKであるはずです。
さらに詳しい情報が必要な場合はお気軽にお問い合わせください。
ありがとう、それはトリックでした。また、JsonModelで正しくレンダリングできないため、 '$ user'を適切に抽出する必要がありました。カスタムハイドレーターを使って自分のアイデンティティを解決する。 – Unex