2017-06-06 6 views
0

Ich beginne zu lernen NativeScript Angular (Ich bin es gewohnt, Webapp/Websites mit Angular zu entwickeln) und ich bin immer noch irgendwie verwirrt, wie Sie einige eingeschränkten Zugriff auf die NativeScript-App erstellen, oder um eine bestimmte Route und/oder mehrere Routen einzuschränken.Sicherheitszugang in NativeScript Angular App

Zum Beispiel in Angular I uiRouter verwenden, um einige Daten zu definieren, wie folgt aus:

data: { 
    requireLogin: true 
} 

In jeder Seite Übergang ich prüfen, ob ein gültiges Token ist der Zugang zu diesen Benutzer zu garantieren. Auf der NativeScript Ich habe darüber nachgedacht und könnte das gleiche tun, ich weiß es einfach nicht, da ich NativeScript sehr neu bin und ich weiß nicht, ob dies gegen Best Practices oder allgemeine Sicherheitsszenarien gehen würde.

Zum Beispiel werde ich auf dem Application Settings nach dem Login das Token werden Einstellung, etwa so:

submit() { 
    // process the login here 
    if (success) { 
     setString(AppSettings.authToken, authToken); 
    } 
} 

Und dann würde ich die Routen setzen eine übergeordnete Route mit einer übergeordneten Komponente haben wo ich für dieses Token überprüfen, zB:

export class ParentComponent implements OnInit { 
    constructor() {} 

    ngOnInit() { 
     if (!getString(AppSettings.authToken)) { 
      return this.router.navigate(["/login"]); 
     } 
    } 
} 

So kann ich überprüfen, wenn der Benutzer eine gültige Session hat, wenn die Anwendung auf einem eingeschränkten Bereich zugreifen.

Zum Beispiel, in einer normalen Angular Anwendung verwende ich auch Interceptor, um in jedem http Anfrage überprüfen, ob die authToken noch gültig ist.

Wie soll ich in diesem Fall tun?

Ich habe versucht, irgendein Material auf NativeScript Angular Sicherheit zu finden, aber keine gefunden. Gibt es einen Ort, an dem ich mehr darüber lesen kann?

Was sollte ich bei dieser Art von Szenario beachten?

Antwort

1

können Sie den route guards

Grund Beispiel für canActivate Strecke Wächter Angular verwenden in NativeScript

class AuthGuard implements CanActivate { 
    constructor(
     private loginService: LoginService, 
     private nav: RouterExtensions) { 
    } 

    canActivate() { 
     if (this.loginService.isLogged) { 
      console.log("AuthGuard: authenticated"); 
      return true; 
     } else { 
      console.log("AuthGuard: redirecting to login"); 
      this.nav.navigate(["/login"]); 
      return false; 
     } 
    } 
} 

Basierend auf diesen test application

The same deal in einer echten Demo-Anwendung. Here ist die tatsächliche Verwendung dieser Wache in der Sample-Groceries App.

Verwandte Themen