HEX
Server: Apache
System: Linux server1.ariadata.co 4.18.0-553.120.1.el8_10.x86_64 #1 SMP Mon Apr 20 18:04:27 EDT 2026 x86_64
User: nepi (1051)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system,show_source,popen,proc_open
Upload Files
File: /home/nepi/public_html/src/core/Directus/Authentication/Sso/AbstractSocialProvider.php
<?php

namespace Directus\Authentication\Sso;

use Directus\Application\Container;
use Directus\Collection\Collection;

abstract class AbstractSocialProvider implements SocialProviderInterface
{
    /**
     * @var Container
     */
    protected $container;

    /**
     * @var Collection
     */
    protected $config;

    /**
     * @var mixed
     */
    protected $provider = null;

    /**
     * @var string
     */
    protected $token = null;

    /**
     * AbstractSocialProvider constructor.
     *
     * @param Container $container
     * @param array $config
     */
    public function __construct(Container $container, array $config)
    {
        $this->container = $container;
        $this->config = new Collection($config);

        $this->createProvider();
    }

    /**
     * Gets provider instance
     *
     * @return mixed
     */
    public function getProvider()
    {
        if (!$this->provider) {
            $this->createProvider();
        }

        return $this->provider;
    }

    /**
     * @inheritdoc
     */
    public function getConfig()
    {
        return $this->config;
    }

    /**
     * Gets authorization token
     *
     * @return string|null
     */
    public function getToken()
    {
        return $this->token;
    }

    /**
     * Gets the redirect url for the given service name
     *
     * @return string
     */
    public function getRedirectUrl()
    {
        return $this->config->get('callback_url');
    }

    /**
     * Creates the provider oAuth client
     *
     * @return mixed
     */
    abstract protected function createProvider();
}