J'utilise Angular 4 avec ADAL pour authentifier les utilisateurs dans mon application web, en utilisant la bibliothèque ng2-adal qui est un wrapper pour adal.js.
Le problème auquel je suis confronté est le suivant : Le jeton expire donc après un certain temps et j'ai une garde de route canActivate qui vérifie si l'utilisateur est authentifié. Si ce n'est pas le cas, il dirige l'utilisateur vers la page de connexion. Voici à quoi ressemble mon garde route :
import { Injectable } from '@angular/core';
import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { AdalService } from 'ng2-adal/dist/core';
@Injectable()
export class RouteGuard implements CanActivate {
constructor(private router: Router, private adalService: AdalService) {}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
if (this.adalService.userInfo.isAuthenticated) {
return true;
} else {
this.router.navigate(['/user-login']);
return false;
}
}
}
Ainsi, à chaque fois que le jeton expire, l'utilisateur est dirigé vers la page de connexion, ce qui est gênant pour les utilisateurs. Existe-t-il un moyen de renouveler le jeton à chaque fois qu'il expire ?