anpi-gabon/laravel-sso

Intégration OAuth 2.0 (SSO) pour les applications du périmètre ANPI-Gabon — Laravel Socialite driver.

Maintainers

Package info

github.com/clercmbounghou/laravel-sso

pkg:composer/anpi-gabon/laravel-sso

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.3 2026-04-28 00:13 UTC

This package is auto-updated.

Last update: 2026-04-28 00:14:24 UTC


README

Package Laravel pour l'intégration du SSO ANPI-Gabon (OAuth 2.0 Authorization Code Flow).
Utilisez ce package pour que vos applications Laravel s'authentifient via investingabon.ga.

Installation

composer require anpi-gabon/laravel-sso

Le service provider est enregistré automatiquement via Laravel Package Discovery.

Configuration

1. Variables d'environnement

Ajoutez dans votre .env les credentials fournis par l'administrateur ANPI :

ANPI_SSO_CLIENT_ID=5
ANPI_SSO_CLIENT_SECRET=AbCdEfGhIjKlMnOpQrStUv...
ANPI_SSO_URL=https://investingabon.ga

2. config/services.php

Ajoutez le bloc anpi :

'anpi' => [
    'client_id'     => env('ANPI_SSO_CLIENT_ID'),
    'client_secret' => env('ANPI_SSO_CLIENT_SECRET'),
    'redirect'      => env('APP_URL') . '/auth/anpi/callback',
    'base_uri'      => env('ANPI_SSO_URL', 'https://investingabon.ga'),
],

Publication des ressources

# Tout publier d'un coup
php artisan vendor:publish --tag=anpi-sso

# Ou individuellement :
php artisan vendor:publish --tag=anpi-sso-config       # config/anpi-sso.php
php artisan vendor:publish --tag=anpi-sso-migration    # migration users
php artisan vendor:publish --tag=anpi-sso-controller   # ANPIAuthController
php artisan vendor:publish --tag=anpi-sso-routes       # routes/anpi.php
php artisan vendor:publish --tag=anpi-sso-views        # bouton blade

Mise en place rapide

Étape 1 — Migration

php artisan vendor:publish --tag=anpi-sso-migration
php artisan migrate

Cela ajoute les colonnes anpi_id, anpi_token, anpi_refresh_token, avatar, token_expires_at à la table users.

Étape 2 — Modèle User

Ajoutez dans app/Models/User.php :

protected $fillable = [
    // ... existant ...
    'anpi_id', 'anpi_token', 'anpi_refresh_token', 'avatar', 'token_expires_at',
];

protected $hidden = [
    // ... existant ...
    'anpi_token', 'anpi_refresh_token',
];

protected function casts(): array
{
    return [
        // ... existant ...
        'token_expires_at' => 'datetime',
    ];
}

Étape 3 — Controller et routes

php artisan vendor:publish --tag=anpi-sso-controller
php artisan vendor:publish --tag=anpi-sso-routes

Puis dans routes/web.php :

require base_path('routes/anpi.php');

Étape 4 — Bouton de connexion

Dans votre vue de login :

@include('vendor.anpi-sso.button')

Ou avec un texte personnalisé :

@include('vendor.anpi-sso.button', ['slot' => 'Accéder à l\'espace investisseur'])

Utilisation du driver directement

use Laravel\Socialite\Facades\Socialite;

// Rediriger vers le SSO
return Socialite::driver('anpi')
    ->scopes(['profile', 'email', 'investor'])
    ->redirect();

// Récupérer l'utilisateur après callback
$user = Socialite::driver('anpi')->user();

$user->getId();       // sub (identifiant ANPI)
$user->getName();     // nom complet
$user->getEmail();    // email
$user->getAvatar();   // URL avatar
$user->token;         // access token
$user->refreshToken;  // refresh token
$user->expiresIn;     // durée de validité (secondes)

Scopes disponibles

Scope Données accessibles
profile Nom, avatar
email Adresse email
investor Espace investisseur
partner Espace partenaires
admin Administration ANPI

Compatibilité

Laravel PHP Version du package
10.x 8.1+ 1.x
11.x 8.2+ 1.x
12.x 8.2+ 1.x

Publication sur Packagist

  1. Créez un dépôt GitHub : anpi-gabon/laravel-sso
  2. Poussez ce code dessus
  3. Connectez-vous sur packagist.org et soumettez l'URL du dépôt
  4. Les applications pourront alors installer avec :
composer require anpi-gabon/laravel-sso

Licence

MIT — © ANPI-Gabon, Direction des Systèmes d'Information