Agregar Guards a nuestro login
Si el usuario ya sé hizo login no vamos a volver a solicitarlo
Para esto vamos a usar guard de autenticación.
ionic g guard guards/login
Opera igual que el guard de intro
.
Ingresamos al guard
copiamos lo que tenemos en el interior del guard intro,
en la definición de la clase tenemos que escribir canActivate
Preguntamos si el usuario hizo login con isUserLoggedIn
si es true retornamos true,
si es false dirigimos a /login
constructor(
private storage: Storage,
private router: Router
){}
async canActivate(){
const isUserLoggedIn = await this.storage.get('isUserLoggedIn');
if(isUserLoggedIn){
return true;
}
else{
this.router.navigateByUrl('/login');
}
}
Importamos el Router de angular y el Storage.
import { Storage } from '@ionic/storage';
Para implementarlo.
tenemos que agregarlo a app-routing.module.ts
en canActivate
canActivate: [IntroGuard, LoginGuard]
import { LoginGuard } from './guards/login.guard';
Definimos isUserLoggedIn en login.page.ts
Primero Inyectamos Storage
private storage: Storage
import { Storage } from '@ionic/storage';
luego antes de redirigir al home debemos setear isUserLoggedIn en verdadero
this.storage.set('isUserLoggedIn', true);
Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.