Le monitoring sera complet si l’utilisateur est averti de la fin imminente de la session OIDC et si il lui est proposé de la prolonger.
Lorsque l’on interroge Authorize avec prompt = ’none’, une particularité d’OAuthSD est de retourner dans le corps de la réponse le temps restant avant la fin de session (variable ’timeleft’, en secondes).
Toujours dans l’exemple du plugin OIDC Client pour SPIP, l’avertissement est implémenté en modifiant le code de l’objet ’200’ pour proposer à l’utilisateur de prolonger la session :
jQuery
- 200 : function ( data, textStatus, jqXHR){
- // Signaler la connexion
- $('#oidc').css('background-color', '#8f8');
- $('#oidc').text(' OIDC ');
- var timeleft = data['timeleft'];
- if ( timeleft < 600 ) { //[dnc28d]
- // La fin de session approche
- var retVal = confirm( "<?php echo _T('oidcclient:session_expire'); ?>" );
- if( retVal == true ) {
- // étendre la session
- $.ajax({
- type : "get",
- url : "<?php echo OIDC_AUTHORIZATION_ENDPOINT; ?>",
- data : { 'response_type' : 'code',
- 'client_id' : "<?php echo OIDC_CLIENT_ID; ?>",
- 'user_id' : login,
- 'state' : state,
- 'scope' : 'openid sli',
- }
- });
- }
- }
- },
Les jetons sont rafraîchis en utilisant notre mécanisme de SLI, et non un jeton de rafraîchissement. Voyez ici pourquoi : Rafraîchir (actualiser) un jeton d’accès : § "Bonnes pratiques pour la sécurité".