Subversion Repositories Applications.annuaire

Compare Revisions

Regard whitespace Rev 558 → Rev 559

/trunk/jrest/services/Auth.php
193,8 → 193,13
$acces = $this->verifierAcces($login, $password);
if ($acces === false) {
$this->detruireCookie();
if(!empty($_GET['redirect_url'])) {
header('Location: '.$_GET['redirect_url']);
} else {
$this->erreur("authentication failed", 401);
}
 
}
// infos utilisateur
$util = new Utilisateur($this->config);
$infos = $util->getIdentiteParCourriel($login);
210,6 → 215,10
$jwt = $this->creerJeton($login, $infos[$login]);
// création du cookie
$this->creerCookie($jwt);
if(!empty($_GET['redirect_url'])) {
$this->redirigerAvecJeton($_GET['redirect_url'], $jwt);
} else {
// envoi
$this->envoyerJson(array(
"session" => true,
219,6 → 228,7
"last_modif" => $infos[$login]['dateDerniereModif']
));
}
}
 
/**
* Détruit le cookie et renvoie un jeton vide ou NULL - le client
230,6 → 240,9
$this->detruireCookie();
// envoi d'un jeton null
$jwt = null;
if(!empty($_GET['redirect_url'])) {
header('Location: '.$_GET['redirect_url']);
} else {
$this->envoyerJson(array(
"session" => false,
"token" => $jwt,
236,6 → 249,7
"token_id" => $this->nomCookie
));
}
}
 
/**
* Renvoie un jeton rafraîchi (durée de validité augmentée de $this->dureeJeton
291,6 → 305,13
$erreur = ($erreur == "" ? "no token or cookie" : "invalid token in cookie / invalid or expired token in Authorization header or parameter <token>");
}
}
if(!empty($_GET['redirect_url'])) {
if ($jetonRetour != null) {
$this->redirigerAvecJeton($_GET['redirect_url'], $jetonRetour);
} else {
header('Location: '.$_GET['redirect_url']);
}
} else {
// renvoi jeton
if ($jetonRetour === null) {
$this->erreur($erreur);
303,7 → 324,21
));
}
}
}
 
protected function redirigerAvecJeton($url, $jetonRetour) {
// dans le cas où une url de redirection est précisée,
// on est généreux et on précise le jeton dans le header et le get
if ($jetonRetour != null) {
$url_redirection = $_GET['redirect_url'];
$separateur = (parse_url($url_redirection, PHP_URL_QUERY) == NULL) ? '?' : '&';
$url_redirection .= $separateur.'Authorization='.$jetonRetour;
header('Authorization: '.$jetonRetour);
}
header('Location: '.$url_redirection);
exit;
}
 
/**
* Vérifie si un jeton est valide; retourne true si oui, une erreur avec
* des détails si non;