Witam,
uczę się Zenda co myślicie o tej autentykacji?
Kod w kontrolerze:
  1. public function loginAction()
  2. {
  3. $this->view->headTitle('autoryzacja', 'PREPEND');
  4.  
  5. if(Zend_Auth::getInstance()->hasIdentity()){
  6. $this->_redirect('/index/index');
  7. }
  8.  
  9. $request = $this->getRequest();
  10. $form = new Form_LoginForm();
  11. if ($request->isPost()) {
  12. if ($form->isValid($this->_request->getPost())) {
  13. $authAdapter = $this->getAuthAdapter();
  14.  
  15. $username = $form->getValue('username');
  16. $password = $form->getValue('password');
  17.  
  18. $authAdapter->setIdentity($username)
  19. ->setCredential($password);
  20.  
  21. $auth = Zend_Auth::getInstance();
  22.  
  23. $result = $auth->authenticate($authAdapter);
  24.  
  25. if($result->isValid()) {
  26. $identity = $authAdapter->getResultRowObject();
  27.  
  28. $authStorage = $auth->getStorage();
  29. $authStorage->write($identity);
  30.  
  31. $this->_redirect('/index/index');
  32. echo 'valid';
  33. } else {
  34. $this->view->errorMessage = 'User name or password is wrong.';
  35. }
  36. }
  37. }
  38.  
  39.  
  40. $this->view->form = $form;
  41.  
  42.  
  43. }
  44.  
  45. public function logoutAction()
  46. {
  47. // action body
  48. Zend_Auth::getInstance()->clearIdentity();
  49. }
  50.  
  51. private function getAuthAdapter() {
  52. $authAdapter = new Zend_Auth_Adapter_DbTable(Zend_Db_Table::getDefaultAdapter());
  53. $authAdapter->setTablename('users')
  54. ->setIdentityColumn('username')
  55. ->setCredentialColumn('password');
  56.  
  57. return $authAdapter;
  58. }

Form Login:
  1. <?php
  2.  
  3. class Form_LoginForm extends Zend_Form
  4. {
  5.  
  6. public function init()
  7. {
  8. /* Form Elements & Other Definitions Here ... */
  9. $this->setName('login');
  10.  
  11. $username = new Zend_Form_Element_Text('username');
  12.  
  13. $username->setLabel('user name:')
  14. ->setRequired();
  15.  
  16. $password = new Zend_Form_Element_Password('password');
  17.  
  18. $password->setLabel('password:')
  19. ->setRequired(true);
  20.  
  21. $login = new Zend_Form_Element_Submit('login');
  22. $login->setLabel('login');
  23.  
  24. $this->addElements(array($username,$password,$login));
  25. $this->setMethod('post');
  26. $this->setAction(Zend_Controller_Front::getInstance()->getBaseUrl().'/authentication/login');
  27. }
  28.  
  29.  
  30. }