in Informatica, Programmazione, Typescript

Angular e AuthGuard

AuthGuard in Angular è un meccanismo che consente di proteggere le rotte (routes) dell’applicazione Angular e di controllare l’accesso degli utenti in base alle autorizzazioni o ai ruoli definiti.

Questo permette di gestire in modo sicuro le pagine dell’applicazione che richiedono un’autenticazione valida.

Di seguito una spiegazione di base su come funziona l’AuthGuard in Angular:

  1. Creazione dell’AuthGuard:
    Per prima cosa, è necessario creare un servizio AuthGuard che implementi l’interfaccia CanActivate fornita da Angular. Questa interfaccia richiede l’implementazione di un metodo chiamato canActivate, che restituisce un booleano o una Promise di un booleano.
  2. Implementazione del metodo canActivate:
    All’interno del metodo canActivate, puoi inserire la logica per verificare se l’utente è autenticato o ha i permessi necessari per accedere alla rotta richiesta. Ad esempio, è possibile verificare se l’utente ha un token valido di autenticazione o se il suo ruolo è autorizzato ad accedere alla rotta.
  3. Utilizzo dell’AuthGuard nelle rotte:
    Per proteggere una rotta specifica, è necessario aggiungere l’AuthGuard come guardia nella definizione della rotta nel file di routing dell’applicazione. Si può impleementare, utilizzando la proprietà canActivate o canActivateChild all’interno della definizione della rotta. Ad esempio:
   const routes: Routes = [
     { path: 'admin', component: AdminComponent, canActivate: [AuthGuard] },
     { path: 'dashboard', component: DashboardComponent, canActivateChild: [AuthGuard] }
   ];
  1. Gestione delle rese delle guardie:
    Nel metodo canActivate, è possibile restituire un valore booleano per indicare se l’utente ha accesso alla rotta o meno. Si può anche restituire una Promise di un booleano se è necessario effettuare operazioni asincrone come controlli di autorizzazione lato server. Se viene restituito true, la navigazione all’interno dell’applicazione viene consentita, altrimenti viene negata.

Quando un utente tenta di accedere a una rotta protetta, l’AuthGuard viene attivato e la logica all’interno del metodo canActivate viene eseguita per determinare se l’utente ha accesso o meno. Se l’utente non è autorizzato, puoi reindirizzarlo a una pagina di login o a un’altra pagina di errore.

L’AuthGuard è uno strumento potente per garantire la sicurezza delle rotte in Angular, consentendo un controllo granulare dell’accesso alle diverse parti dell’applicazione in base all’autenticazione e all’autorizzazione dell’utente.