Вы должны использовать Zend_Auth
. Вы можете использовать
Zend_Auth::getInstance ()->clearIdentity ();
чтобы выйти из системы.
Вот так выглядит мой AuthenticationController:
class Default_AuthenticationController extends Zend_Controller_Action {
public function init() {
}
public function loginAction() {
if (Zend_Auth::getInstance ()->hasIdentity ()) {
$this->_redirect ( 'index/index' );
}
$request = $this->getRequest ();
$form = new Default_Form_LoginForm ();
if ($request->isPost ()) {
if ($request->getPost ( 'username' ) != "") {
$username = $request->getPost ( 'username' );
$password = $request->getPost ( 'password' );
$authAdapter = $this->getAuthAdapter ();
$authAdapter->setIdentity ( $username )
->setCredential ( $password );
$auth = Zend_Auth::getInstance ();
$result = $auth->authenticate ( $authAdapter );
}
}
$this->view->form = $form;
}
public function logoutAction() {
Zend_Auth::getInstance ()->clearIdentity ();
$this->_redirect ( 'index/index' );
}
private function getAuthAdapter() {
$authAdapter = new Zend_Auth_Adapter_DbTable (
Zend_Db_Table::getDefaultAdapter () );
$authAdapter->setTableName ( 'users' )
->setIdentityColumn ( 'email' )
->setCredentialColumn ( 'password' )
->setCredentialTreatment ( 'SHA1(CONCAT(?,salt))' );
return $authAdapter;
}
}
Смотрите это КАК для получения более подробной информации.