Zend_Auth проверяет, вошел ли пользователь в систему

Я пытался использовать:

// do login if request is posted
if (isset($_POST) && !empty($_POST)) {
    // do authencation
    ...
} else {
    // request not posted
    // see if already logged in
    if (Zend_Auth::getInstance()->hasIdentity()) {
        echo "already logged in as: " . Zend_Auth::getInstance()->getIdentity();
    }
}

Zend_Auth::getInstance()->hasIdentity() кажутся всегда ложными ... даже после входа в систему


person iceangel89    schedule 24.09.2009    source источник
comment
как вы делаете вашу аутентификацию? как вы убедитесь, что он сохраняется? если вы правильно выполнили аутентификацию, hasIdentity вернет true!   -  person markus    schedule 24.09.2009
comment
я использовал Zend_Auth для аутентификации, framework. zend.com/manual/en/, в соответствии с этим $result-›getIdentity() === $auth-›getIdentity()   -  person iceangel89    schedule 24.09.2009


Ответы (3)


Вы когда-нибудь звонили Zend_Auth::getInstance()->getStorage()->write($identity)?

Если вы выполняете аутентификацию через Zend_Auth::getInstance()->authenticate($adapter), он будет записывать в хранилище для вас, но если вы вызываете аутентификацию непосредственно на адаптере, вы несете ответственность за запись удостоверения в хранилище.

person gnarf    schedule 24.09.2009

Вы уверены, что ваша личность сохранена? (т.е. хранится в сеансе или что-то подобное), если нет, вам придется повторно аутентифицироваться при каждом запросе

person NDM    schedule 24.09.2009

у меня была та же проблема, в моем случае значение session.save_path on не было установлено на моем сервере (phpinfo()), поэтому я добавил в configs/application.ini это значение:

resources.session.save_path = APPLICATION_PATH "/../data/sessions"

и на моем сервере я создаю каталог /data/sessions, где sessions имеет 777 разрешений

person Ehecatl    schedule 01.11.2011