Manyhub SSO-Connect
Ce dépÎt permet à tout partenaire de Manymore de pouvoir s'authentifier via le SSO., (*1)
Ce composant est totalement autonome et peut s'utiliser dans n'importe quel projet écrit en PHP., (*2)
L'installation de ce composant se fait via composer :, (*3)
php composer.phar require manyhub/sso-client-php, (*4)
Dépendances
Ce composant nécessite PHP 5.6 au minimum ainsi que les bibliothÚques suivantes :
- guzzlehttp/guzzle (pour la communication HTTP)
- monolog/monolog (pour la gestion des logs)
- symfony/console (dans le cas oĂč on veut tester en mode console)
- paragonie/random_compat (pour la génération aléatoire du nonce oAuth), (*5)
Utilisation
Tester en mode console
php bin/console manyhub:oauth:try <key> <secret> <login>, (*6)
Ces 3 paramĂštres sont obligatoires :
- key : le consumer_key qui vous a été attribué
- secret : le secret_key qui vous a été attribué
- login : le login de l'utilisateur Ă auto-logguer, (*7)
D'autres paramÚtres sont optionnels mais néanmoins disponibles :
* --env=[prod|staging] : par défaut "prod". Pour tester sur l'environnement de recette, il faut utiliser "staging"
* --callback : par défaut "https://manymore.fr" mais vous pouvez spécifier votre URL ici
* --application=[prisme|nexus|risk] : par dĂ©faut "prisme" mais en fonction du type d'utilisateur, l'application choisie ne sera pas la mĂȘme
* --crypto : par défaut "HMAC-SHA1" qui est le seul utilisé actuellement
* --crypto_version : par défaut "1.0' qui est la seule version utilisée actuellement, (*8)
Intégration dans les scripts PHP
Pour l'intégration dans vos scripts PHP, voici un exemple :, (*9)
# monscript.php
require __DIR__ . '/vendor/autoload.php';
use GuzzleHttp\Client;
use Manyhub\SSO\Client\Component\Signer\Signer;
use Manyhub\SSO\Client\Component\SSOTokenClient;
$client = new SSOTokenClient(new Client(), new Signer());
$result = $client->tryAuth(
'get',
$urlSSO,
$key,
$secret,
'HMAC-SHA1',
'1.0',
$callback,
$login,
$application
);
// Tout se trouve dans $result['redirect_url'] :
// echo $result['redirect_url'];
header('Location: ' . $result['redirect_url']);
exit();