31,98 → 31,5 |
|
return $this->getVue(Config::get('dossier_squelettes_formulaires').$annuaire['informations']['aa_code'].'_identification',$donnees); |
} |
|
public function identificationOpenID($identifiant) { |
|
// crée une zone de stockage pour les données OpenID |
$store = new Auth_OpenID_FileStore('./oid_store'); |
|
// crée un consommateur OpenID |
$consumer = new Auth_OpenID_Consumer($store); |
|
if ($_COOKIE['h_infos'] == null) { |
// vérifie les valeurs du formulaire |
if (trim($identifiant == '')) { |
$_SESSION['id'] = 0 ; |
die("ERROR: Entrez un OpenID valide svp."); |
} |
} else { |
// dans le cas ou un cookie du site est déjà présent |
$str_infos_client = $_COOKIE['h_infos']; |
$infos_client = unserialize(stripslashes($str_infos_client)); |
// on vérifie son contenu et on le compare à ce qui est en cours |
if ($infos_client['h_browser'] == md5($_SESSION['HTTP_USER_AGENT']) && $infos_client['h_remote_addr'] == md5($_SESSION['REMOTE_ADDR']) && $infos_client['oid_user_name'] != null) { |
$identifiant = $infos_client['oid_user_name']; |
$_SESSION['id'] = 1; |
session_regenerate_id(); |
} else { |
die("ERROR: Tentative de fixation de session ?"); |
} |
} |
|
// commence le process d'authentification |
// crée une requête d'authentification pour le fournisseur OpenID |
$auth = $consumer->begin($_POST['id']); |
if (!$auth) { |
die("ERROR: Entrez un OpenID valide svp."); |
} |
|
// si on est arrivé déjà authentifié |
if ($infos_client['oid_user_name'] != null) { |
// on fait une redirection immédiate |
$url = $auth->redirectURL('http://162.38.234.9/', 'http://162.38.234.9/annuaire.php',true); |
} else { |
// sinon on crée un cookie et on appelle openId pour s'autentifier |
$_SESSION['id'] = 1; |
$this->fabriquerCookie($identifiant); |
$url = $auth->redirectURL('http://162.38.234.9/', 'http://162.38.234.9/OpenId1/annuaire.php'); |
} |
// redirige vers le fournisseur OpenID pour l'authentification |
header('Location: ' . $url); |
} |
|
private function fabriquerCookieOpenId($identifiant) { |
|
$infos_client = array('h_browser' => md5($_SESSION['HTTP_USER_AGENT']), |
'h_remote_addr' => md5($_SESSION['REMOTE_ADDR']), |
'oid_user_name' => $identifiant); |
$str_infos_client = serialize($infos_client); |
setCookie('h_infos',$str_infos_client,0,'/','162.38.234.9'); |
} |
|
public function fabriquerCookie($utilisateur, $mot_de_passe, $crypter_mot_de_passe = true) { |
|
if($crypter_mot_de_passe) { |
if(function_exists($this->fonction_cryptage_mdp_cookie)) { |
|
$fonction_cryptage = $this->fonction_cryptage_mdp_cookie; |
|
$mot_de_passe_crypte = $fonction_cryptage($mot_de_passe); |
} else { |
$mot_de_passe_crypte = md5($mot_de_passe); |
} |
} |
|
// Expiration si l'utilisateur ne referme pas son navigateur |
$GLOBALS['_GEN_commun']['pear_auth']->setExpire((int)$this->duree_identification); |
// Création d'un cookie pour rendre permanente l'identification |
$cookie_val = $mot_de_passe_crypte.$utilisateur; |
setcookie($this->cookie_persistant_nom, $cookie_val, (int)$this->duree_identification, '/'); |
|
} |
|
public function loggerUtilisateurParCookie() { |
|
// Si un cookie existe, nous loggons l'utilisateur. |
$GLOBALS['_GEN_commun']['pear_auth']->password = substr($_COOKIE[$this->cookie_persistant_nom], 0, 32 ); |
$GLOBALS['_GEN_commun']['pear_auth']->username = substr($_COOKIE[$this->cookie_persistant_nom], 32); |
// Nous sommes obligés de crypter le mot de passe |
if (isset($GLOBALS['_GEN_commun']['pear_auth']->storage_options)) { |
$GLOBALS['_GEN_commun']['pear_auth']->storage_options['cryptType'] = 'none'; |
} |
if (isset($GLOBALS['_GEN_commun']['pear_auth']->storage->options)) { |
$GLOBALS['_GEN_commun']['pear_auth']->storage->options['cryptType'] = 'none'; |
} |
} |
} |
?> |