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
);
}`
:
여기 지금 내 코드입니다.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')
매개 변수를 전달할 수 있으며 정상적으로 작동합니다.
이유를 알 수 없습니다. 설명서에 혼합 유형이 예상되므로 잘해야합니다.
자세한 정보가 필요하면 언제든지 문의하십시오.
감사합니다. 또한 JsonModel에서 제대로 렌더링 할 수 없기 때문에'$ user'를 올바르게 추출해야했습니다. 맞춤형 하이드 레이터를 사용하여 신원 확인 솔루션을 구축하십시오. – Unex