Php Zend_Auth检查用户是否登录

Php Zend_Auth检查用户是否登录,php,zend-framework,zend-auth,Php,Zend Framework,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()) { ech

我尝试使用:

// 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()
似乎总是错误的。。。即使在登录后

您确定您的身份仍然有效吗?(即,存储在会话或类似内容中)
如果没有,您将不得不在每个请求上重新验证

您是否调用过
Zend_Auth::getInstance()->getStorage()->write($identity)

如果您通过
Zend_Auth::getInstance()->authenticate($adapter)
进行身份验证,它将为您写入存储,但如果您直接在适配器上调用authenticate,则您负责将标识写入存储。

我也遇到了同样的问题, 在我的情况下,
session.save\u path
on的值未在我的服务器上设置(
phpinfo()
) 因此,我在
configs/application.ini
中添加了以下值:

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

在我的服务器上,我创建了dir
/data/sessions
,其中
sessions
拥有777个权限

如何进行身份验证?您如何确保它被持久化?如果您已正确进行身份验证,hasIdentity将返回true!我使用Zend_Auth进行身份验证,根据$result->getIdentity()===$Auth->getIdentity()