Social Connect Auth Component


Packagist License Scrutinizer Code Quality Build Status Scrutinizer Code Coverage

Documentation :: Demo

Open source social sign on PHP. Connect your application(s) with social network(s).

Code examples you can find in example directory

Supported type of providers

Supported providers

SocialConnect/Auth support 30+ providers such as Facebook, Google, Twitter, GitHub, Vk and another.

See all 30+ provider


Version Status PHP Version
3.x Development >= 7.1
2.x Current >= 7.0
1.x Maintenance >= 5.5


The recommended way to install socialconnect/auth is via Composer.

  1. If you do not have composer installed, download the composer.phar executable or use the installer.
$ curl -sS | php
  1. Run php composer.phar require socialconnect/auth or add a new requirement in your composer.json.
  "require": {
    "socialconnect/auth": "^2.2.0"
  1. Run php composer.phar update

Referenced projects

How to use


composer install 

First you need to setup SocialConnect\Auth\Service:

$httpClient = new \SocialConnect\Common\Http\Client\Curl();

 * By default we are using Curl class from SocialConnect/Common
 * but you can use Guzzle wrapper ^5.3|^6.0
//$httpClient = new \SocialConnect\Common\Http\Client\Guzzle(
//    new \GuzzleHttp\Client()

 * Why do we need cache decorator for HTTP Client?
 * Providers like OpenID & OpenIDConnect require US
 * to request OpenID specification (and JWK(s) for OpenIDConnect)
 * It's not a best practice to request it every time, because it's unneeded round trip to the server
 * if you are using OpenID or OpenIDConnect we suggest you to use cache
 * If you don`t use providers like (Steam) from OpenID or OpenIDConnect
 * you may skip this because it's not needed
$httpClient = new \SocialConnect\Common\Http\Client\Cache(
     * Please dont use FilesystemCache for production/stage env, only for local testing!
     * It doesnot support cache expire (remove)
    new \Doctrine\Common\Cache\FilesystemCache(
        __DIR__ . '/cache'

$configureProviders = [
    'redirectUri' => 'http://sconnect.local/auth/cb/${provider}/',
    'provider' => [
        'facebook' => [
            'applicationId' => '',
            'applicationSecret' => '',
            'scope' => ['email'],
            'options' => [
                'identity.fields' => [

$service = new \SocialConnect\Auth\Service(
    new \SocialConnect\Provider\Session\Session(),

 * By default collection factory is null, in this case Auth\Service will create 
 * a new instance of \SocialConnect\Auth\CollectionFactory
 * you can use custom or register another providers by CollectionFactory instance
$collectionFactory = null;

$service = new \SocialConnect\Auth\Service(
    new \SocialConnect\Provider\Session\Session(),

Next create you loginAction:

$providerName = 'facebook';

$provider = $service->getProvider($providerName);
header('Location: ' . $provider->makeAuthUrl());

And implement callback handler:

$providerName = 'facebook';

$provider = $service->getProvider($providerName);
$accessToken = $provider->getAccessTokenByRequestParameters($_GET);

$user = $provider->getIdentity($accessToken);


This project exists thanks to all the people who contribute. Contributions are welcome!


This project is open-sourced software licensed under the MIT License.

See the LICENSE file for more information.