Пример #1
0
 /**
  * resolveIdentity 
  * 
  * @param AuthEvent $e 
  * @return void
  */
 public function resolveIdentity(AuthEvent $e)
 {
     if (!is_int($e->getIdentity())) {
         return;
     }
     $identity = $this->getMapper()->findById($e->getIdentity());
     if ($identity instanceof UserModel) {
         $e->setIdentity($identity);
     }
 }
Пример #2
0
 public function authenticate(AuthEvent $e)
 {
     if ($this->isSatisfied()) {
         $storage = $this->getStorage()->read();
         $e->setIdentity($storage['identity']);
         return;
     }
     $identity = $e->getRequest()->post()->get('email');
     // change field name to 'identity'
     $credential = $e->getRequest()->post()->get('password');
     // change field name to 'credential'
     $userObject = $this->getMapper()->findByEmail($identity);
     if (!$userObject && Module::getOption('enable_username')) {
         // Auth by username
         $userObject = $this->getMapper()->findByUsername($identity);
     }
     if (!$userObject) {
         $this->setSatisfied(false);
         // return redirect response?
         return false;
         // no identity match
     }
     $credentialHash = $this->hashPassword($credential, $userObject->getPassword());
     if ($credentialHash === $userObject->getPassword()) {
         $e->setIdentity($userObject->getUserId());
         $this->updateUserPasswordHash($userObject, $credential)->updateUserLastLogin($userObject)->setSatisfied(true);
         $storage = $this->getStorage()->read();
         $storage['identity'] = $e->getIdentity();
         $this->getStorage()->write($storage);
     } else {
         $this->setSatisfied(false);
         return false;
     }
     // do stuff
 }