1

Der Versuch, einige grundlegende Authentifizierung mit kantigem 2. Ich meine Komponente für ein Token überprüfen möchten, um herauszufinden, und wenn es vorhanden ist, um die richtige Position zu navigieren, aber wenn es nicht die Fehlermeldung zurückgegeben wird, angezeigt durch der Service. Hier ist die die Service-Aufruf:Zugriff auf Token und Antwortdaten

this._loginService.login(loginQuery) 
     .subscribe(
      (token: any) => this._router.navigate(['User', { username: user }]), 
      (data) => { this.errorMessage = data.ErrorMessage; } 
     ) 

Hier ist der Code für den Service:

return this._http.post('serivcelink, 
          body, 
          {headers:headers}) 
     .map((res : any) => { 
      let data = res.json(); 
      this.token = data.TeamMember.UserName; 
      localStorage.setItem('token', this.token); 
     }); 

ich das Token Verhalten, das ich außer will, dass ich keinen Zugriff auf das Response-Objekt in dem Komponente und als solche kann die Fehlermeldung nicht angezeigt werden.

Wie kann ich nach dem Token suchen und Zugriff auf die Antwortdaten erhalten?

Antwort

0

können Sie verwenden eine if-Anweisung Token besteht zu überprüfen, ob, sonst eine Fehlermeldung angezeigt:

this._loginService.login(loginQuery) 
     .subscribe(
      (data: any) => { 
       if (localStorage.getItem('token')) { 
        this._router.navigate(['User', { username: user }]) 
       } else { 
        this.errorMessage = data.ErrorMessage; 
       } 
      } 
     ) 
+0

Danke, das war was ich gesucht habe. Ich war mir der Syntax nicht sicher. – Bob

0

Sie brauchen etwas im map Rückruf zurückzukehren, das heißt this.token in Ihrem Fall:

return this._http.post('serivcelink, 
         body, 
         {headers:headers}) 
    .map((res : any) => { 
     let data = res.json(); 
     this.token = data.TeamMember.UserName; 
     localStorage.setItem('token', this.token); 
     return this.token; // <------- 
    }); 

Was Sie zurückkommen wird als Parameter in den Rückruf der subscribe Methode erhalten.

+0

Vielen Dank für Ihre Antwort. Dies erlaubt mir, die Antwort zurückzugeben, bricht dann aber das Verhalten, das ich von meinem "abonnieren" will. Eine Follow-up-Frage wäre dann, wie man am besten nach dem Token in der "subscribe" -Methode sucht, bevor man die Route ändert? – Bob

Verwandte Themen