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()