2

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?

Ben Dauphinee
  • 4,061
  • 8
  • 40
  • 59

1 Answers1

5
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
  • 4,511
  • 1
  • 25
  • 30
  • 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 May 30 '10 at 16:07
  • 1
    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 May 30 '10 at 17:41