我尝试使用:
// 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()
似乎总是假的......即使在登录后
答案 0 :(得分:11)
你有没有打电话给Zend_Auth::getInstance()->getStorage()->write($identity)
?
如果您通过Zend_Auth::getInstance()->authenticate($adapter)
进行身份验证,它将为您写入存储,但如果您直接在适配器上调用身份验证,则您有责任将该身份写入存储。
答案 1 :(得分:1)
你确定你的身份是坚持的吗? (即存储在会话中或类似的东西) 如果不是,您将不得不在每个请求上重新进行身份验证
答案 2 :(得分:1)
session.save_path
on的值未在我的服务器上设置(phpinfo()
)
所以我在configs/application.ini
中添加了这个值:
resources.session.save_path = APPLICATION_PATH "/../data/sessions"
并在我的服务器上创建了/data/sessions
,其中sessions
拥有777权限