laravel-sso maintained by anpi-gabon
Description
Intégration OAuth 2.0 (SSO) pour les applications du périmètre ANPI-Gabon — Laravel Socialite driver.
Last update
2026/04/28 02:13
(dev-main)
License
Downloads
1
anpi-gabon/laravel-sso
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
- Créez un dépôt GitHub :
anpi-gabon/laravel-sso - Poussez ce code dessus
- Connectez-vous sur packagist.org et soumettez l'URL du dépôt
- Les applications pourront alors installer avec :
composer require anpi-gabon/laravel-sso
Licence
MIT — © ANPI-Gabon, Direction des Systèmes d'Information