Довольно новичок в Zend Framework 1.11 с Doctrine 2.
Я успешно создал логин и т. Д. С помощью Doctrine.
Моя текущая проблема заключается в том, что экземпляр Zend_Auth отлично работает, когда я остаюсь внутри контроллера, в котором находится вход.
Если я попытаюсь определить состояние Zend_Auth :: getInstance-> HasIdentity () в любом другом контроллере, он вернет пустое значение.
Если я затем вернусь к любой странице, находящейся в контроллере, содержащей логин / аутентификацию, hasIdentity будет работать нормально.
Я даже пробовал писать в хранилище, но это не приносит радости.
Мой код авторизации выглядит следующим образом: действие, вызываемое после нажатия кнопки входа (в пределах MembersareaController)
public function authAction()
{
$this->_helper->viewRenderer->setNoRender(true);
$loginForm = new Application_Model_Login();
if($this->getRequest()->isPost()){
$usr = "";
$pwd = "";
$KeepLoggedIn = false;
$message = "";
$usr = $this->_getParam('username');
$pwd = $this->_getParam('password');
$pwdMd5 = md5($pwd);
if($usr !== "" && $pwd !== ""){
$GDSAdaptor = new ZC_Auth_Adapter($usr, $pwdMd5);
$result = \Zend_Auth::getInstance()->authenticate($GDSAdaptor);
if(\Zend_Auth::getInstance()->hasIdentity()){
$this->flashMessenger->addMessage(LOGIN_SUCCESS);
$this->_redirect('/membersarea/index');
}else{
$this->flashMessenger->addMessage(LOGIN_INVALID);
}
}else{
$this->flashMessenger->addMessage(LOGIN_MISSING_FORMVAL);
$this->_redirect('/membersarea/login');
}
}
Попытка увидеть, как человек вошел в систему IndexController с помощью следующего кода, не дает результатов. hasIdentity возвращает пустое значение.
public function indexAction()
{
if(Zend_Auth::getInstance()->hasIdentity())
{
$msg = "hasIdentity: YES";
}else{
$msg = "hasIdentity: NO";
}
$this->view->msg = $msg;
}