Есть ли способ принудительно аутентифицировать Zend_Auth?

Я работаю с Zend_Auth и сохранением файлов cookie / сеансов. Кажется, я не могу понять, как заставить аутентификацию с этим классом.

Есть ли способ заставить Zend_Auth поверить, что он аутентифицирован как пользователь?


person Ben Dauphinee    schedule 30.05.2010    source источник


Ответы (1)


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

Где $identity будет содержать тот же тип структуры / данных, который генерируется, когда пользователь входит в систему через стандартный механизм. Например, учитывая этот пример кода в действии входа в систему:

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

$result->getIdentity() вернет идентификатор, если он действителен.

person nuqqsa    schedule 30.05.2010
comment
Значит, мне пришлось бы написать запрос к базе данных, который извлекал бы данные, о которых обычно заботится Zend_Auth? - person Ben Dauphinee; 30.05.2010
comment
Нет, вы можете подделать данные, в этом случае аутентификация будет пропущена. Я имел в виду, что вы можете захотеть сделать его как можно более похожим на реальную личность пользователя, особенно если это делается для целей тестирования. - person nuqqsa; 30.05.2010