protected function auth($client, $authUrlParams = [])
    {
        if ($client instanceof OAuth2) {
            return $this->authOAuth2($client, $authUrlParams);
        } elseif ($client instanceof OAuth1) {
            return $this->authOAuth1($client, $authUrlParams);
        } elseif ($client instanceof OpenId) {
            return $this->authOpenId($client);
        }

        throw new NotSupportedException('Provider "' . get_class($client) . '" is not supported.');
    }