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:
- Creazione dell’AuthGuard:
Per prima cosa, è necessario creare un servizio AuthGuard che implementi l’interfacciaCanActivatefornita da Angular. Questa interfaccia richiede l’implementazione di un metodo chiamatocanActivate, che restituisce un booleano o una Promise di un booleano. - Implementazione del metodo canActivate:
All’interno del metodocanActivate, 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. - 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àcanActivateocanActivateChildall’interno della definizione della rotta. Ad esempio:
const routes: Routes = [
{ path: 'admin', component: AdminComponent, canActivate: [AuthGuard] },
{ path: 'dashboard', component: DashboardComponent, canActivateChild: [AuthGuard] }
];- Gestione delle rese delle guardie:
Nel metodocanActivate, è 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 restituitotrue, 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.