views:

57

answers:

1

I am working with Zend_Auth and cookie/session persistence. I can't seem to figure out how to force an authentication with this class.

Is there any way to force Zend_Auth to believe it has authenticated as a user?

+1  A: 
Zend_Auth::getInstance()->getStorage()->write($identity);

Where $identity would contain the same type of structure/data that's generated when the user logs in through the standard mechanism. For instance, given this sample code in the login action:

$adapter = $this->getAuthAdapter($form->getValues());
$auth    = Zend_Auth::getInstance();
$result  = $auth->authenticate($adapter);
if ($result->isValid()) {
    // (...)
}

$result->getIdentity() would return the identity if valid.

nuqqsa
@nuqqsa So I would have to write a database query that would pull the data that would normally be taken care of by Zend_Auth?
Ben Dauphinee
No, you can fake the data, in this way authentication is skipped. What I meant is that you may want to make it as similar as possible to a real user identity, specially if it's for testing purposes.
nuqqsa