Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 573 → Rev 574

/trunk/jrest/services/Auth.php
322,19 → 322,22
* Si $_GET['redirect_url'] est non-vide, redirige vers l'URL qu'il contient et sort du programme;
* sinon, ne fait rien et passe la main
*
* @param string $jetonRetour jeton JWT à passer à l'URL de destination (en GET
* et dans le header "Authorization"); par défaut null
* @param string $jetonRetour jeton JWT à passer à l'URL de destination
* en GET; par défaut null
*/
protected function rediriger($jetonRetour=null) {
if (!empty($_GET['redirect_url'])) {
// 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
// on précise le jeton dans le get
$url_redirection = $_GET['redirect_url'];
if ($jetonRetour !== null) {
$separateur = (parse_url($url_redirection, PHP_URL_QUERY) == NULL) ? '?' : '&';
$url_redirection .= $separateur.'Authorization='.$jetonRetour;
header('Authorization: '.$jetonRetour);
}
 
// même si le jeton est vide, on ajoute un paramètre GET Authorization
// pour spécifier à la cible qu'on a bien traité sa requête - permet
// aussi de gérer les déconnexions en renvoyant un jeton vide
$separateur = (parse_url($url_redirection, PHP_URL_QUERY) == NULL) ? '?' : '&';
$url_redirection .= $separateur.'Authorization='.$jetonRetour;
 
// retour à l'envoyeur !
header('Location: '.$url_redirection);
exit;
}