5

我尝试使用:

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

4

3 回答 3

11

你有没有打电话Zend_Auth::getInstance()->getStorage()->write($identity)

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

于 2009-09-24T08:40:30.127 回答
1

我遇到了同样的问题,在我的情况下,session.save_path我的服务器()上没有设置 on的值,phpinfo()所以我添加了configs/application.ini这个值:

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

在我的服务器上,我创建了/data/sessions具有sessions777 权限的目录

于 2011-11-01T20:34:12.930 回答
1

你确定你的身份是持久的吗?(即存储在会话或类似的东西中)如果不是,您将不得不对每个请求重新进行身份验证

于 2009-09-24T08:24:26.650 回答