SALT > Modules > SSO > Manuel >
Un exemple de mise en place de SSO est visible ci-dessous :
Dans cet exemple, on a 3 applications et le SSO : Il existe 4 utilisateurs :
alertDans cet exemple, le SSO a été modifié pour être en lecture seule : Toutes les modifications sont désactivées.
Cependant, la langue étant gérée en partie dans un cookie, les modifications de langues sont visibles tant que l'utilisateur ne s'authentifie pas à nouveau (la valeur de la base de données, en lecture seule, est alors réutilisée)

Vous pouvez voir ci-dessous le code écrit pour app1. Les autres applications sont exactement sur le même modèle.

Gestionnaire

<racine>/sso/plugins/examples/App1Handler.class.php (Les classes peuvent être directement dans plugins ou dans un sous dossier comme ici) <?php
use sso\Handler;
use 
sso\AuthUser;
use 
sso\SsoClient;

class 
App1Handler extends Handler {

    const 
COOKIE_NAME 'auth_app1';

    public function 
init(AuthUser $userSsoClient $sso) {
        
$_COOKIE[self::COOKIE_NAME] = 1// for first call
        
setcookie(self::COOKIE_NAME10$this->path); // for other calls
    
}
}
?>

Application

<racine>/app1/index.php <?php

require_once(implode(DIRECTORY_SEPARATOR, array(__DIR__'..''sso''lib''SsoClient.class.php')));
use 
sso\SsoClient;
$sso SsoClient::getInstance('../sso'); // Initialise le SSO
$currentUser $sso->auth(); // Authentifie l'utilisateur

?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta http-equiv="Content-Language" content="fr" />
    <?php $sso->displayMenuCssHeader() ?>
    <title>Exemple SSO - Application 1</title>
</head>
<body>
<?php $sso->displayMenu() ?>

<h2>Application 1</h2>
<div>

<?php if (!isset($_COOKIE['auth_app1'])) { ?>
    Non authentifié sur l'application.
<?php } else { ?>
    Authentifié comme <b><?= htmlspecialchars($currentUser->name?></b>
<?php ?>

</div>

</body>
</html>