pierre-granger / apidae-sso
Classe d'utilisation des API de SSO d'Apidae
Requires
- php: ^7.0|^8.0
- pierre-granger/apidae-core: ^0.6
README
Classe d'utilisation de l'API SSO D'Apidae
Tests
L'installation nécessite d'utiliser Composer.
Placez-vous dans votre dossier de travail :
composer require pierre-granger/apidae-sso
Copiez ou renommez le fichier config.sample.php
: config.inc.php
Après avoir créé votre projet SSO sur Apidae vous aurez récupéré les codes suivants à rentrer dans config.inc.php
:
$configApidaeSso['ssoClientId'] = 'aaaaaaaa-bbbb-cccc-dddd-eeeeeeee' ;
$configApidaeSso['ssoSecret'] = 'a1b2c3...' ;
Créez votre fichier de test (test.php
...)
Vous pouvez reprendre le contenu de tests/sso.php
en adaptant les chemins :
<?php
ini_set('display_errors',1) ;
error_reporting(E_ALL) ;
session_start() ;
require(realpath(dirname(__FILE__)).'/vendor/autoload.php') ;
require(realpath(dirname(__FILE__)).'/config.inc.php') ;
use PierreGranger\ApidaeSso ;
$configApidaeSso['debug'] = true ;
$ApidaeSso = new ApidaeSso($configApidaeSso,$_SESSION['ApidaeSso']) ;
if ( isset($_GET['logout']) )
{
$ApidaeSso->logout() ;
}
/* After an authentification, user is redirected to this page with a additional ?code=1234 in URL. We will use this code to get the token from SSO API */
if ( isset($_GET['code']) && ! $ApidaeSso->connected() )
{
$ApidaeSso->getSsoToken($_GET['code']) ;
}
if ( $ApidaeSso->connected() ) echo '<a href="?logout">Logout</a>' ;
else
{
echo '<a href="'.$ApidaeSso->getSsoUrl().'">Link to SSO Auth</a>' ;
die() ;
}
// Here we know we are connected.
echo '<pre>'.print_r($ApidaeSso->getUserProfile(),true).'</pre>' ;
Si tout va bien... c'est tout : vous n'avez plus qu'à vous rendre via votre navigateur web sur le fichier .../test.php et vous devriez avoir un bouton "Link to SSO Auth" (à renommer en prod bien sûr : "Me connecter à Apidae"...)
Le suivi de la session est assuré par $_SESSION['ApidaeSso']
: une fois en production, veillez a bien avoir démarré une session avant toute utilisation du SSO : session_start()
.
Une fois l'utilisateur identifié, vous pourrez avoir des informations le concernant grâce à getUserProfile()
.
Pour plus de détails sur les droits de l'utilisateur, vous devrez utiliser l'API membres d'Apidae. Une autre classe permet de s'en servir : https://github.com/PGranger/ApidaeMembres
Pour plus d'informations : http://dev.apidae-tourisme.com/fr/documentation-technique/v2/oauth/single-sign-on