dotkernel/dot-auth-social

Authentication wrapper for social providers

Maintainers

👁 dotkernel

Package info

github.com/dotkernel/dot-auth-social

pkg:composer/dotkernel/dot-auth-social

Statistics

Installs: 1 309

Dependents: 0

Suggesters: 0

Stars: 4

Open Issues: 0

1.5.0 2025-10-31 06:57 UTC

Requires

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 13f6ae5aa2fcb3ba60c43e450140b329752f0912

  • Dotkernel Team <team.woop@dotkernel.com>

logingooglefacebookauthsocialdotkernelmezzio

This package is auto-updated.

Last update: 2026-06-29 02:02:47 UTC


README

Dotkernel's component, used to authenticate users through Facebook and return credentials and user details.

dot-auth-social is a wrapper on top of thephpleague/oauth2-client social providers.

Documentation

Documentation is available at: https://docs.dotkernel.org/dot-auth-social/.

Badges

👁 OSS Lifecycle
👁 PHP from Packagist (specify version)

👁 GitHub issues
👁 GitHub forks
👁 GitHub stars
👁 GitHub license

👁 Build Static
👁 codecov
👁 PHPStan

Requirements

  • PHP: 8.2, 8.3, 8.4 or 8.5

Installation

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 social-authentication.global.php in config/autoload with the following contents:

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

Make sure to populate the array with your credentials.

Usage

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

<?php

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:

<?php

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.