import { AuthGuard } from './auth.guard';
const routes: Routes = [ { path: 'dashboard', component: DashboardComponent, canActivate: [AuthGuard] }, { path: 'login', component: LoginComponent } ];
import { Injectable } from '@angular/core'; import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router'; import { Observable } from 'rxjs'; import { AuthService } from './auth.service';
@Injectable({ providedIn: 'root' }) export class AuthGuard implements CanActivate {
constructor(private authService: AuthService) {}
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable
import { Injectable } from '@angular/core'; import { BehaviorSubject } from 'rxjs';
@Injectable({ providedIn: 'root' }) export class AuthService {
private loggedIn = new BehaviorSubject
constructor() { }
isLoggedIn() { return this.loggedIn.asObservable(); }
login() { // perform login tasks this.loggedIn.next(true); }
logout() { // perform logout tasks this.loggedIn.next(false); } }