/** * @param SocialiteManager $socialite * @param $providerName * @param string $providerClass * @param null|string $oauth1Server * * @return \Laravel\Socialite\One\AbstractProvider|\Laravel\Socialite\Two\AbstractProvider */ protected function buildProvider(SocialiteManager $socialite, $providerName, $providerClass, $oauth1Server) { $config = $this->getConfig($providerName); if ($this->isOAuth1($oauth1Server)) { return $this->buildOAuth1Provider($providerClass, $oauth1Server, $socialite->formatConfig($config)); } return $this->buildOAuth2Provider($socialite, $providerClass, $config); }
/** * Build an OAuth 1 provider instance. * * @param string $providerClass must extend Laravel\Socialite\One\AbstractProvider * @param string $oauth1Server must extend League\OAuth1\Client\Server\Server * @param array $config * * @return \Laravel\Socialite\One\AbstractProvider */ protected function buildOAuth1Provider(SocialiteManager $socialite, $providerClass, $providerName, $oauth1Server) { $this->classExtends($providerClass, \Laravel\Socialite\One\AbstractProvider::class); $this->classExtends($oauth1Server, \League\OAuth1\Client\Server\Server::class); $config = $this->getConfig($providerClass, $providerName); $configServer = $socialite->formatConfig($config->get()); $provider = new $providerClass($this->app->offsetGet('request'), new $oauth1Server($configServer)); $provider->setConfig($config); return $provider; }
/** * Format the Twitter server configuration. * * @param array $config * @return array * @static */ public static function formatConfig($config) { return \Laravel\Socialite\SocialiteManager::formatConfig($config); }