Felhasználói eszközök

Eszközök a webhelyen


oktatas:web:angular:angular_utvonalak_vedelme

< Angular

Angular - Útvonalak védelme

Guard

Az egyes útvonalak védelméről a guard nevű eszközzel tudunk gondoskodni.

A shared nevű könyvtárban fogom létrehozni (nem kötelező itt létrehozni):

ng g guard shared/auth

Létrehozáskor rákérdez milyen típusokat szeretnénk:

>(*) CanActivate
 ( ) CanActivateChild
 ( ) CanDeactivate
 ( ) CanLoad

A szóközzel jelölhetek ki, a le és fel billentyűvel választhatok, az Enter billentyűre továbblép.

Szükségünk van egy metódusra, ami megmondja, hogy azonosítva vagyunk-e.

auth.service.ts
  isLoggedIn() {
    if (localStorage.getItem('currentUser') === null) {
      return false;
    }    
    return true;
  }
auth.guard.ts
import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate } from '@angular/router';
import { Router, RouterStateSnapshot, UrlTree } from '@angular/router';
 
import { Observable } from 'rxjs';
import { AuthService } from './auth.service';
 
@Injectable({
  providedIn: 'root'
})
export class AuthGuard implements CanActivate {
 
  constructor(
    private auth: AuthService,
    private router: Router
    ) {}
  canActivate()
      route: ActivatedRouteSnapshot,
      state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
 
 
    if( this.auth.isLoggedIn() ) {
      return true;
    }
    this.router.navigate(['login']);
    return false;
  }
 
}
app-routing.module.ts
const routes: Routes = [
  {
    path: 'employees', 
    component: EmployeeComponent,
    canActivate: [AuthGuard]
  },
  {path: '**', component: NopageComponent}
];
oktatas/web/angular/angular_utvonalak_vedelme.txt · Utolsó módosítás: 2023/02/15 13:22 szerkesztette: admin