Una aplicación tendrá N cantidad de rutas, pero es posible que muchas de estas tengan restricciones de acceso solo para administradores o determinados roles de usuario.
En estos casos, los Guards llegan para ayudarnos a darle seguridad a nuestras rutas.
Cómo segurizar Rutas
Con ayuda del CLI de Angular, puedes crear tu primer guardián con el comando ng generate guard <nombre-guard> o en su forma corta ng g g <nombre-guard>.
1. Creando el primer guard
Al utilizar este comando, nos hará una pregunta sobre qué interfaz quieres que implemente por defecto:
Cada opción tiene una funcionalidad distinta para cada tipo de Guard. Escoge la primera opción llamada CanActivate.
Al auto generar el código, verás tu primer Guard con el siguiente aspecto.
Un Guard puede devolver un booleano, una promesa con un booleano o un observable, también con un booleano. Dependiendo la lógica que tengas que aplicar para el caso sea síncrona o asíncrona.
2. Importando el guard
Ahora importa el nuevo Guard el routing de tu aplicación.
Agrégale a las rutas que quieras segurizar canActivate: [ AdminGuard ].
De esta manera, ya puedes implementar la lógica que necesites para cada Guard. En este caso, permitir el acceso al módulo CMS solo para usuarios administradores.
Bueno ya sabemos que los profesores están despegados de los comentarios de sus alumnos, porque no contestan nada, ni a preguntas ni a nada, que lástima, con lo buena que es esta plataforma ....
la segunda g es por Guards, para generar lo que nos enseña en esta clase es
ng g g guards/auth
Lo que nunca vi en el curso es que tambien se puede colocar completo, por ejemplo ng generate guard | component | pipe | service | ...
Todo iba bien, hasta que cambian el api, por que la que se venia desarrollando no soporta los roles
Para los que tengan problemas con la creación de los guardianes por
utilicen el comando
ng generate guard guards/auth
el tema de los guardianes está cool 🖖
que pasaría si el token esta vencido? igual seguira existiendo en el local storage por ende me deja entrar al perfil asi el token este vencido que se deberia hacer en ese caso?
Yo he venido realizando el ejercicio desde el primer curso, no he cargado los repositorios, y veo que los fuentes entre un curso y otro cambian. En este punto no puedo crear el usuario con role, dado que la API no reconoce el rol. Que se debe hacer en este caso?
El resto de archivos los tengo igual que los trabajados en la clase.
Si están trabajando con el código anterior y no lo han descargado del repositorio del profesor, como yo eh hecho. Probablemente tengan problemas con el Login. El problema es que como cambiaron de API, el usuario que por default pusieron en el código anterior no existe. Para esto solo tienen que crear un nuevo usuario con el siguiente endpoint:
¿ Que pasa cuando el usuario es consumidor y administrador ?
Se crean dos usuarios
Se tiene un usuario y dos roles. (Roles por usuario).
Lo más recomendable es tener un usuario y con N cantidad de roles, el usuario al hacer login debería poder seleccionar con cual rol ingresar o tener dos login diferente, uno para los usuarios y otro para los admin.