Аутентификация в Zend Framework
В Zend Framework существует удобный механизм осуществления аутентификации. Рассмотрим простой пример его использования.
Для хранения логинов и паролей будет использоваться таблица в базе данных:
CREATE TABLE `users` (`id` INT NOT NULL AUTO_INCREMENT , `login` VARCHAR( 20 ) NOT NULL , `password` VARCHAR( 100 ) NOT NULL , `fullname` VARCHAR( 100 ) , PRIMARY KEY ( `id` ));
Теперь создадим метод, который вызывается при регистрации пользователя. В нем заполняются поля созданой ранее таблицы:
public function processAction(){
$form = $this->getForm();
if ($form->isValid($_POST)){
$fullName = $form->getValue("fullname");
$login = $form->getValue("login");
$password = md5($form->getValue("password"));
$db = DBUtils::getConnection();
$data = array("fullname" => $fullName, "login" => $login, "password" => $password);
$db->insert("users", $data);
}
}
Обратите внимание, что пароль пользователя зашифрован с помощью алгоритма md5.
Осталось реализовать самую важную часть процесса - собственно аутентификацию пользователя. Для этого необходимо создать объект класса Zend_Auth_Adapter_DbTable конструктор которого принимает объект подключения к базе данных, имя таблицы, содержащей информацию о логинах и паролях, имя колонки с логином, имя колонки с паролем.
public function processAction() {
$form = $this->getForm();
if ($form->isValid($_POST)) {
$db = DBUtils :: getConnection();
$auth = Zend_Auth :: getInstance();
$adapter = new Zend_Auth_Adapter_DbTable($db, "users", "login", "password");
$adapter->setIdentity($form->getValue("login"));
$adapter->setCredential(md5($form->getValue("password")));
$result = $auth->authenticate($adapter);
$this->view->message = $result->getCode()."<br/>";
foreach ($result->getMessages() as $message){
$this->view->message .= $message."<br/>";
}
}
}
Метод authenticate класса Zend_Auth возвращает объект класса Zend_Auth_Result который предоставляет методы для получения кода результата (getCode()) и сообщений об ошибках или успехе (getMessages()). Все возвращаемые коды результатов соответствуют константам, определенным в классе Zend_Auth_Result.

13 Окт 2008 в 2:11 пп
[...] Также, возможно, вам будут интересны методы аутентификации в Zend Framework. [...]