Advertisement
Guest User

wcc1

a guest
Jan 21st, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. @Injectable()
  2. export class AuthGuardService implements CanActivate {
  3.  
  4. constructor(
  5. private router: Router,
  6. private authService: AuthService
  7. ) {}
  8.  
  9. canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean |
  10. Observable<boolean> | Promise<boolean> {
  11. return this.checkToken(route, state);
  12. }
  13.  
  14. private checkToken(next: ActivatedRouteSnapshot,
  15. state: RouterStateSnapshot): boolean |
  16. Observable<boolean> | Promise<boolean> {
  17. if (this.authService.isAuthenticated()) {
  18. // check if token will expire soon
  19. if (this.authService.shouldIGetToken()) {
  20. console.log('Refresh token');
  21. return this.authService.refreshToken().pipe(mapTo(true));
  22. } else {
  23. console.log('Auth guard return true');
  24. return true;
  25. }
  26. }
  27. this.authService.clearToken ();
  28. this.router.navigate(['./login']);
  29. console.log('Auth guard return false');
  30. return false;
  31.  
  32. }
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement