/** * Authenticate with given username and password * * @param string $username * @param string $password * @return \Zend\Authentication\Result */ public function authenticate($username, $password) { $user = $this->userMapper->findOne(['user_name' => $username]); if (null == $user) { return new Result(Result::FAILURE_IDENTITY_NOT_FOUND, null); } if ($this->verifyPassword($password, $user->password) == false) { $this->getEventManager()->trigger('authenticate.invalidPassword', $this, ['user' => $user]); return new Result(Result::FAILURE_CREDENTIAL_INVALID, null); } if ($user->status != 'activated') { $this->getEventManager()->trigger('authenticate.deactivatedUser', $this, ['user' => $user]); return new Result(Result::FAILURE_IDENTITY_AMBIGUOUS, null); } $this->getEventManager()->trigger('authenticate.success', $this, ['user' => $user]); return new Result(Result::SUCCESS, $user); }