import { Injectable } from '@angular/core'; import { ActivatedRouteSnapshot, CanActivate, CanActivateChild, Router, RouterStateSnapshot, UrlTree, } from '@angular/router'; import { Observable, of } from 'rxjs'; import { CookiesService } from '../services/cookies.service'; @Injectable({ providedIn: 'root', }) export class AuthGuard implements CanActivate, CanActivateChild { constructor(private cookiesService: CookiesService, private router: Router) {} canActivate( route: ActivatedRouteSnapshot, state: RouterStateSnapshot ): | Observable | Promise | boolean | UrlTree { if (this.cookiesService.getItem('token')) { return of(true); } else { this.router.navigate(['/login']); return of(false); } } canActivateChild( childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot ): | boolean | UrlTree | Observable | Promise { return this.canActivate(childRoute, state); } }