Angular desde cero | 2.6 - Cómo proteger rutas

Dario Alvarado@darioanvarado

Para aquellos en los que en el minuto 8:30 les está generando una función en vez de una clase les explico. Después de investigar me di cuenta de que el comando guard fue depreciada a partir de la versión 15 (creo). https://angular.io/api/router/CanActivate

El código que tienes que hacer es el siguiente en tu archivo validate-session.guard.ts:

import { Inject, Injectable, inject } from  [@ [@'@angular](https://ed.team/u/'@angular)](https://ed.team/u/'@angular)/core';
import { CanActivateFn } from '@angular/router';

[@
@Injectable](https://ed.team/u/
@Injectable)()
export class ValidateSessionService {
   private cookie: string | null = null;

   canActivate(): boolean {
       return this.checkCookie();
   }

   private checkCookie(): boolean {
       console.log('fino fino', this.cookie);
       return (this.cookie !== null)

       // if (this.cookie != null) {
       //     return true;
       // } else {
       //     return false;
       // }
       // return true;

   }

}

export const validateSessionGuard: CanActivateFn = (route, state) => {

 return inject(ValidateSessionService).canActivate();
};

Además, por estar haciendo el inject(ValidateSessionService), tienes que añadir en tu archivo app.module.ts dentro de NgModule, dentro de providers lo siguiente:

providers: [
        ValidateSessionService
    ]

Añadí unas capturas de pantalla para que puedan ver mejor el código


Escribe una respuesta