/**
* Plugin OpenID Connect client pour SPIP
* OIDC Client Monitoring
* Interroge le contrôleur OIDC Authorize avec prompt=none pour afficher l'état de connexion.
* Voir également action_logout() dans oidcclient_options.php.
* Auteur : B.Degoy DnC
* Copyright (c) 2019 B.Degoy
* Licence GPL v3.0
*/
// OIDC Client Monitoring
$(document).ready(function() {
// Ajouter l'étiquette si elle n'existe pas
if($('#oidc').length === 0){
$('
OIDC
')
.appendTo('nav')
.css('position','absolute')
.css('top','12px')
.css('left','3px')
.css('color','white')
.css('padding','3px');
}
var login = "";
var state = "";
if ( login !== "" ) {
// Si on est logé localement, surveiller qu'on l'est également sur OIDC
setInterval(function(){
$.ajax({
type : "get",
url : "",
data : { 'response_type' : 'code',
'client_id' : "",
'user_id' : login,
'state' : state,
'scope' : 'openid',
'prompt' : 'none',
},
statusCode : {
401 : function(){
// Non authentifié sur OIDC, déconnecter localement
var url_logout_public = "";
window.location.replace(url_logout_public);
},
200 : function (){
// Signaler la connexion
$('#oidc').css('background-color', '#8f8');
$('#oidc').text(' OIDC ');
},
},
error : function(obj,textStatus,errorThrown){
// Signaler qu'on ne sait pas
$('#oidc').css('background-color', 'red');
$('#oidc').text(textStatus + ' ' + errorThrown);
}
});
}, 2000);
} else {
// Signaler la déconnexion
$('#oidc').css('background-color', 'orange');
$('#oidc').text(' OIDC ');
}
});