oktatas:web:angular:angular_utvonalak_vedelme
Angular - Útvonalak védelme
- Szerző: Sallai András
- Copyright © Sallai András, 2023
- Web: https://szit.hu
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