2017-09-08 1 views
0

Ich versuche, IonViewWillEnter zu verwenden, um zu überprüfen, ob der Benutzer angemeldet ist. Wenn es false zurückgibt dann leiten Sie sie an die Anmeldung Seite. Dann möchte ich, dass die Funktion intializeapp aufgerufen wird. Ich bin ziemlich neu in Angular und Ionic, also werden alle Tipps helfen. `Ich versuche zu sehen, ob der Benutzer angemeldet ist und wenn sie nicht auf die Anmeldeseite

ionViewCanEnter() { 
    console.log("1"); 
    console.log(this.userSevice.isUserLoggedIn()); 
    if (this.userSevice.isUserLoggedIn() === false){ 
     this.nav.push(LoginPage); 
     alert("user is logging in"); 
    } 
    else{ 
     this.initializeApp(); 
    } 
    }` 

Antwort

1

Es ist ein schönes Konzept in Winkeln genannt Guard und Sie können das benutzen, um Ihren gesamten Login Fluss in Winkel Anwendung zu behandeln.

Sie können einen Authentifizierungswächter erstellen und ihn in Ihren Router oder an einer beliebigen anderen Stelle platzieren und den Benutzer auf die Anmeldeseite zwingen, falls er nicht eingeloggt ist und versucht, auf einen privaten Bereich der Site zuzugreifen.

dies ist eine einfache Auth Wache

@Injectable() 
export class AuthGuard implements CanActivate { 

    constructor(private router: Router, private authService: AuthService) { } 

    canActivate(): Observable<boolean> | boolean { 
    // here check if this is first time call. If not return 
    // simple boolean based on user object from authService 
    // otherwise: 

    return this.authService.getAuthenticated.map(user => { 
      this.authService.setUser(user); 
      return user ? true : false; 
    }) 

    } 
} 

und in Ihrem Router, du so

const routes: Routes = [ 
    { 
    path: '', 
    canActivate: [AuthGuardService], 
    runGuardsAndResolvers: 'always', 
    } 
    ... 
] 
verwenden können
Verwandte Themen