Подтвердить что ты не робот

Как настроить Module.php в Zend Framework 2 для перенаправления пользователя, если он не находится в сеансе (если он не вошел в систему)?

Итак, вопрос в том, как я могу настроить Module.php в своем модуле, чтобы проверить, не является ли пользователь сеансом или нет? Если он не я хочу перенаправить его на страницу входа в систему.

Я не хочу, чтобы у пользователя было разрешение на выполнение другого действия (контроллера), если он не находится в сеансе (не входит в систему).

4b9b3361

Ответ 1

Это нужно сделать с событием в ZF2 для более подробной информации: нажмите здесь также этот код может вам помочь. http://pastebin.com/FFGVCpki

public function init() {
    // Attach Event to EventManager
    $events = StaticEventManager::getInstance ();

    // Add event of authentication before dispatch
    $events->attach ( 'Zend\Mvc\Controller\AbstractActionController', 'dispatch', array (
            $this,
            'authPreDispatch' 
    ), 110 );
}
public function authPreDispatch($event){
$target = $event->getTarget ();
$serviceLocator = $target->getServiceLocator();
// Do what ever you want to check the user identity
$url = $event->getRouter ()->assemble ( array (
                    "controller" => "<controller>" 
            ), array (
                    'name' => '<route name>' 
            ) );
$response = $event->getResponse ();
        $response->setHeaders ( $response->getHeaders ()->addHeaderLine ( 'Location', $url ) ));
        $response->setStatusCode ( 302 );
        $response->sendHeaders ();
        exit ();
}

Ответ 3

Некоторые вроде:

$e->getRouteMatch()
->setParam('controller', 'Application\Controller\Login')
->setParam('action', 'login');