Authentication wrapper for social providers

1.1.2 2023-11-29 11:21 UTC

This package is auto-updated.

Last update: 2024-04-12 13:24:02 UTC


This package is a wrapper for thephpleague/oauth2-client social providers. It's goal is to authenticate users though facebook and return credentials and user details.

OSS Lifecycle PHP from Packagist (specify version)

GitHub issues GitHub forks GitHub stars GitHub license

Build Static codecov



Run the following command in your project directory

$ composer require dotkernel/dot-auth-social

After installing, add the ConfigProvider class to your configuration aggregate.

Create a new file in config/autoload with the following contents :

return [
    'social_authentication' => [
        'facebook' => [
            'client_id' => '',
            'client_secret' => '',
            'redirect_uri' => '',
            'graph_api_version' => '',

Note : Don't forger to put your credentials in the array.


In this example we will create a new controller, but you can use an existing one too.


namespace Frontend\User\Controller;

use Dot\Controller\AbstractActionController;
use Dot\AuthSocial\Service\AuthenticationServiceInterface;
use Laminas\Diactoros\Response\RedirectResponse;
use Psr\Http\Message\ResponseInterface;

class FacebookController extends AbstractActionController
    private AuthenticationServiceInterface $service;

    public function __construct(AuthenticationServiceInterface $service)
        $this->service = $service;

    public function authAction(): ResponseInterface
        $code = $this->request->getQueryParams()['code'] ?? false;
        if (! $code) {
            return new RedirectResponse($this->service->getAuthorizationUrl());

        $result = $this->service->authenticate($code);
        if (! $result->isValid()) {
            // invalid authentication, check $result->getMessages() for errors.
        } else {
            // valid authentication, use $result->getArrayCopy() to get the user details

Create a factory for the controller:


use Dot\AuthSocial\Service\FacebookService;
use Psr\Container\ContainerInterface;

class FacebookControllerFactory
    public function __invoke(ContainerInterface $container): FacebookController
        return new FacebookController($container->get(FacebookService::class));

Make sure to register your controller with the factory in ConfigProvider.