code: public function authenticate()
      {
          $user = $this->findUser();
  
          if ($user === false) {
              return new AuthenticationResult(
                  AuthenticationResult::FAILURE_IDENTITY_NOT_FOUND,
                  array(),
                  array('User not found.')
              );
          }
  
          $validationResult = $this->passwordValidator->isValid(
              $this->credential, $user[$this->credentialColumn], $user[$this->identityColumn]
          );
  
          if ($validationResult->isValid()) {
              // Don't store password in identity
              unset($user[$this->getCredentialColumn()]);
  
              return new AuthenticationResult(AuthenticationResult::SUCCESS, $user, array());
          }
  
          return new AuthenticationResult(
              AuthenticationResult::FAILURE_CREDENTIAL_INVALID,
              array(),
              array('Invalid username or password provided')
          );
      }
docs: Performs authentication.
  
  @return AuthenticationResult Authentication result