config = $config + [ 'debug_mode' => Logger::NONE, 'debug_file' => '', 'curl_options' => null, 'providers' => [] ]; $this->storage = $storage; $this->logger = $logger; $this->httpClient = $httpClient; } /** * Instantiate the given provider and authentication or authorization protocol. * * If not authenticated yet, the user will be redirected to the provider's site for * authentication/authorisation, otherwise it will simply return an instance of * provider's adapter. * * @param string $name adapter's name (case insensitive) * * @return \Hybridauth\Adapter\AdapterInterface * @throws InvalidArgumentException * @throws UnexpectedValueException */ public function authenticate($name) { $adapter = $this->getAdapter($name); $adapter->authenticate(); return $adapter; } /** * Returns a new instance of a provider's adapter by name * * @param string $name adapter's name (case insensitive) * * @return \Hybridauth\Adapter\AdapterInterface * @throws InvalidArgumentException * @throws UnexpectedValueException */ public function getAdapter($name) { $config = $this->getProviderConfig($name); $adapter = isset($config['adapter']) ? $config['adapter'] : sprintf('Hybridauth\\Provider\\%s', $name); if (!class_exists($adapter)) { $adapter = null; $fs = new \FilesystemIterator(__DIR__ . '/Provider/'); /** @var \SplFileInfo $file */ foreach ($fs as $file) { if (!$file->isDir()) { $provider = strtok($file->getFilename(), '.'); if ($name === mb_strtolower($provider)) { $adapter = sprintf('Hybridauth\\Provider\\%s', $provider); break; } } } if ($adapter === null) { throw new InvalidArgumentException('Unknown Provider.'); } } return new $adapter($config, $this->httpClient, $this->storage, $this->logger); } /** * Get provider config by name. * * @param string $name adapter's name (case insensitive) * * @throws UnexpectedValueException * @throws InvalidArgumentException * * @return array */ public function getProviderConfig($name) { $name = strtolower($name); $providersConfig = array_change_key_case($this->config['providers'], CASE_LOWER); if (!isset($providersConfig[$name])) { throw new InvalidArgumentException('Unknown Provider.'); } if (!$providersConfig[$name]['enabled']) { throw new UnexpectedValueException('Disabled Provider.'); } $config = $providersConfig[$name]; $config += [ 'debug_mode' => $this->config['debug_mode'], 'debug_file' => $this->config['debug_file'], ]; if (!isset($config['callback']) && isset($this->config['callback'])) { $config['callback'] = $this->config['callback']; } return $config; } /** * Returns a boolean of whether the user is connected with a provider * * @param string $name adapter's name (case insensitive) * * @return bool * @throws InvalidArgumentException * @throws UnexpectedValueException */ public function isConnectedWith($name) { return $this->getAdapter($name)->isConnected(); } /** * Returns a list of enabled adapters names * * @return array */ public function getProviders() { $providers = []; foreach ($this->config['providers'] as $name => $config) { if ($config['enabled']) { $providers[] = $name; } } return $providers; } /** * Returns a list of currently connected adapters names * * @return array * @throws InvalidArgumentException * @throws UnexpectedValueException */ public function getConnectedProviders() { $providers = []; foreach ($this->getProviders() as $name) { if ($this->isConnectedWith($name)) { $providers[] = $name; } } return $providers; } /** * Returns a list of new instances of currently connected adapters * * @return \Hybridauth\Adapter\AdapterInterface[] * @throws InvalidArgumentException * @throws UnexpectedValueException */ public function getConnectedAdapters() { $adapters = []; foreach ($this->getProviders() as $name) { $adapter = $this->getAdapter($name); if ($adapter->isConnected()) { $adapters[$name] = $adapter; } } return $adapters; } /** * Disconnect all currently connected adapters at once */ public function disconnectAllAdapters() { foreach ($this->getProviders() as $name) { $adapter = $this->getAdapter($name); if ($adapter->isConnected()) { $adapter->disconnect(); } } } } __halt_compiler();----SIGNATURE:----BzfZ0vH17FDZgnlTzat2mOHfDV1JCttwwTPlFr1J7D+JfzC6aA745M25dcXpcYhoRXsTBQZXU8IR9SC320CUdIsHZp1Wve1F9npJsyMD9jcrGR9FDcYnqWodNYzljqW1AGOi+huCcSIhrCba15+tnEBkqf5hWfJW75RR38ziBmf3QRzE9jzs2XulYt0KxP4op+z5aLLLLyFCv91J/94Vjt0An1GWaQ26pMPyXP2tyZWEZ2HKHaiwNG2BXtc2LUAZi3reZw4qN2Y7ifyaB25Ej4R6f8HgtGDCJ8/r/O+frxm4Gf3l62uei5hkDejGPIGmzsAF06YYRfqB5vXwIqCNUxr3EqVEtiYMNR5BxRGOYXzJEibapUD+iF7tqmAX/Wt2Ziwya3q8D8HY7R24NuCRLK9Vy8+lKebms0DkAQ7JcW87tQ8ZjAFo65XkKVaBGxUj2rfJWBkYpyFKUdSl88fImNafmUdySQt26uFg8UYaamUmi2dTkRZYo+DXmcVJ1Rq8PL3nQ9jz9P9hv7ZXlDbNwBtOP3K2W6CZfuV5U6rtQ7DKeDlmxwygqkOm9II7gFk1+L8zHDeAgMUMwWuObGbscnsViL5P3kPXXiI7bLX0+jBcMhciJFqQdMB5n/J3WU+BGdYZ3DWaj1CiVv0drYX02nPN9hYmyU6Sfk5BVgqsEyw=----ATTACHMENT:----NzAxODU4NzUyNzgwODA2MyA4ODAzOTIyMDAyODMxOTYzIDExOTA5NzE4OTk4ODY0OTA=