/** * 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 '); } });