/**
  * Overridden authenticateAction method to check for an existing account with the Opauth data.
  *
  * @return string
  */
 public function authenticateAction()
 {
     $opauthResponse = $this->opauth->getResponse();
     if ($this->authenticateActionAlreadyCalled == FALSE && $opauthResponse !== NULL) {
         $this->authenticateActionAlreadyCalled = TRUE;
         if ($opauthResponse->isAuthenticationSucceeded()) {
             $opauthAccount = $this->opauthAccountService->getAccount($opauthResponse);
             $doesAccountExists = $this->opauthAccountService->doesAccountExist($opauthAccount);
             if ($doesAccountExists === FALSE) {
                 return $this->onOpauthAccountDoesNotExist($opauthResponse->getRawData(), $opauthAccount);
             }
         } else {
             return $this->onOpauthAuthenticationFailure($opauthResponse->getRawData());
         }
     }
     return parent::authenticateAction();
 }