Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Injectable()
- export class AuthGuardService implements CanActivate {
- constructor(
- private router: Router,
- private authService: AuthService
- ) {}
- canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean |
- Observable<boolean> | Promise<boolean> {
- return this.checkToken(route, state);
- }
- private checkToken(next: ActivatedRouteSnapshot,
- state: RouterStateSnapshot): boolean |
- Observable<boolean> | Promise<boolean> {
- if (this.authService.isAuthenticated()) {
- // check if token will expire soon
- if (this.authService.shouldIGetToken()) {
- console.log('Refresh token');
- return this.authService.refreshToken().pipe(mapTo(true));
- } else {
- console.log('Auth guard return true');
- return true;
- }
- }
- this.authService.clearToken ();
- this.router.navigate(['./login']);
- console.log('Auth guard return false');
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement