public function generateRedirectUri($state = null, $queryDelimeter = '?')
    {
        $uri = $this->getRedirectUri();
        $uri .= (strstr($this->getRedirectUri(), $queryDelimeter) === false) ? $queryDelimeter : '&';

        return $uri.http_build_query([
            'code'  =>  $this->getId(),
            'state' =>  $state,
        ]);
    }