On Tue, Mar 9, 2010 at 12:05 AM, Cameron <themsel...@gmail.com> wrote: > > > On Tue, Mar 9, 2010 at 10:49 AM, Jake McGraw <jmcgr...@gmail.com> wrote: >> >> >> On Mon, Mar 8, 2010 at 8:51 PM, Cameron <themsel...@gmail.com> wrote: >>> >>> Ok, I just tried removing everything except for >>> >>> $data = $authAdapter->getResultRowObject(null, 'password'); >>> $auth->getStorage()->write($data); >>> >>> all, the $authNamespace stuff is gone, and it makes no difference - still >>> can't log out. Does clearIdentity() not work when there's something in the >>> Zend_Auth instance's storage? Because I use the storage all around my >>> application... It forms the basis of my ACL class... >>> >>> Ohhhhh. Ok. Is it possible that Zend_Auth's storage is completely >>> separate to the authenticated session? that clearIdentity() doesn't touch >>> it? >> >> Typically, I don't mess with the identity created by the Auth Adapter. >> However, there are instances where you need to store more than the $identity >> (which may only be an email or userId), for that I use Session_Namespace, >> check out my example: >> http://gist.github.com/326089 >> - jake > > So I'm doing this wrong? Because I've been pulling my identity out of > Zend_Auth like this: Zend_Auth::getInstance()->getStorage()->read()->id... I > don't recall why I was doing it like that, but it seemed to work at the > time. >
You aren't ever required to directly interface with the Zend_Auth Storage instance, though there is nothing technically wrong with it, I prefer Zend_Auth::getInstance()->getIdentity() if the identity is available. I think the disconnect here is that you're trying to store more than the user identity (email, userId, username, etc) inside the the instance of Zend_Auth storage, which isn't technically wrong, it's just not what the built in default storage system was written for. I work around this by using another persistent storage method, in my case Zend_Session_Namespace. - jake