/** * Instantiate the given provider and authentication or authorization protocol. * * If user not authenticated yet, the user will be redirected to the authorization Service * to authorize the application. * * @param string $provider Provider (case insensitive) * * @throws Exception\Exception * @throws Exception\RuntimeException * @throws Exception\UnexpectedValueException * @throws Exception\InvalidArgumentException * @throws Exception\AuthorizationDeniedException * @throws Exception\HttpClientFailureException * @throws Exception\HttpRequestFailedException * @throws Exception\InvalidAccessTokenException * @throws Exception\InvalidApplicationCredentialsException * @throws Exception\InvalidAuthorizationCodeException * @throws Exception\InvalidAuthorizationStateException * @throws Exception\InvalidOauthTokenException * @throws Exception\InvalidOpenidIdentifierException * * @return Adapter\AdapterInterface */ public function authenticate($provider) { $this->logger->info("Enter Hybridauth::authenticate( {$provider} )"); $adapter = $this->getAdapter($provider); $adapter->authenticate(); return $adapter; }