public function __async_authorize($hashEmail = null, $hashPassword = null)
    {
        $result = array('status' => '0');

        // Get hashed email field by all possible methods
        if (!isset($hashEmail)) {
            if (isset($_POST) && isset($_POST[$this->dbHashEmailField])) {
                $hashEmail = $_POST[$this->dbHashEmailField];
            } elseif (isset($_GET) && isset($_GET[$this->dbHashEmailField])) {
                $hashEmail = $_GET[$this->dbHashEmailField];
            } else {
                $result['email_error'] = "\n".'['.$this->dbHashEmailField.'] field is not passed';
            }
        }

        // Get hashed password field by all possible methods
        if (!isset($hashPassword)) {
            if (isset($_POST) && isset($_POST[$this->dbHashPasswordField])) {
                $hashPassword = $_POST[$this->dbHashPasswordField];
            } elseif (isset($_GET) && isset($_GET[$this->dbHashPasswordField])) {
                $hashPassword = $_GET[$this->dbHashPasswordField];
            } else {
                $result['email_error'] = "\n".'['.$this->dbHashPasswordField.'] field is not passed';
            }
        }

        // If we have authorization data
        if (isset($hashEmail) && isset($hashPassword)) {

            $hashEmail = $this->hash($hashEmail);
            $hashPassword = $this->hash($hashPassword);

            /**@var EmailStatus $authorizeResult Perform generic registration*/
            $authorizeResult = $this->authorizeWithEmail($hashEmail, $hashPassword);

            // Check if it was successfull
            if ($authorizeResult->code == EmailStatus::SUCCESS_EMAIL_AUTHORIZE) {
                $result['status'] = '1';
            }

            // Save email register status
            $result[self::RESPONSE_STATUS_TEXTFIELD] = $authorizeResult->text;
            $result[self::RESPONSE_STATUS_FIELD] = $authorizeResult->code;
            $result = array_merge($result, $authorizeResult->response);
        }

        return $result;
    }