I tried using:
// 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()
seem to be always false ... even after a login
Are you ever calling Zend_Auth::getInstance()->getStorage()->write($identity)
?
If you are authenticating through Zend_Auth::getInstance()->authenticate($adapter)
it will write to storage for you, but if you are calling authenticate directly on the adapter, you are responsible for writing the identity to the storage.
are you sure your identity is persisted? (ie. stored in the session or somthing similar) if not you will have to re-authenticate on each request
i had the same problem, in my case the value of session.save_path
on was not set on my server ( phpinfo()
) so i added in configs/application.ini
this value:
resources.session.save_path = APPLICATION_PATH "/../data/sessions"
and on my server i create the dir /data/sessions
where sessions
has 777 permissions
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.