Есть много постов, связанных с тем, что я спрашиваю, но после долгих поисков не смог найти то, что искал, мои извинения, если оно где-то есть.
Моя цель - ВСЕЗапросы к моему Zend App должны проходить через плагин preDispatch, а затем передаваться в пользовательский контроллер Auth, который решит, достаточно ли существующих учетных данных для запрошенной операции.«Достаточность» зависит от логики приложения, поэтому я хочу сделать это на уровне «контроллер + модель».Если их достаточно, они отправляют исходный запрос вместе с указанным действием «контроллер +», если нет, то они по умолчанию используют действие «заблудиться».
В настоящее время я использую пользовательский подключаемый модуль auth, установленный в preDispatch дляпросто проверьте POST'-аутентифицированные учетные данные (если мы входим в систему), тогда во всех случаях плагин сохраняет исходный запрос и перенаправляет всех (авторизованных или нет) на мой контроллер аутентификации, а-ля:
$request->setModuleName('default')
->setControllerName('auth')
->setActionName('check')
->setParam('oreq',$request->getParams());
Моя проблема / вопрос в том, что в рамках моего действия auth-> check, как я должен выполнить перенаправление после принятия решения?Если я использую:
$this->_helper->redirector($or['action'], $oreq['controller']);
, тогда я, очевидно, получаю бесконечный цикл, поскольку эти запросы снова проходят через плагин preDispatch.Конечно, я мог что-то передать с перенаправлением, чтобы плагин Auth игнорировал такие запросы, но это явно дыра в безопасности.Я думал о создании и хранении хеша md5, сохранении его в сеансе и передаче его в качестве escape-параметра, но это кажется немного отрывочным.
Есть какие-нибудь лучшие идеи?Возможно, метод перенаправления, который не проходит стандартную процедуру предварительной отправки в Zend App?Заранее спасибо!