2017-01-18 14 views
1

ログインが成功した後、ルータが要求されたルートへのナビゲーションでない理由が混乱しています。コンソール出力には、AuthGuardが拒否した最後のURLをユーザーに送信する必要があることが示されていますが、サブスクライブのrouter.navigate行はこのナビゲーションを実行していないようです。Angular2 Routerログイン時にナビゲーションしない

onLogin() { 
    if (this.formCredentials.valid) { 
     this.isLoading = true; 
     this.auth.login(this.formCredentials.value.username, this.formCredentials.value.password) 
     .subscribe(
      data => { 
       localStorage.setItem('id_token', data.access_token); 
       localStorage.setItem('refresh_token', data.refresh_token); 
       this.auth.requireLoginSubject.next(false); 
       console.log(this.auth.lastUrl); 
       this.router.navigate([this.auth.lastUrl]); 
      }, 
      error => { 
       console.log(error); 
       var err = error.json(); 
       localStorage.removeItem('auth_error'); 
       localStorage.setItem('auth_error', JSON.stringify(err)); 
       this.router.navigate(['/unauthorized']); 
       this.isLoading = false; 
      }, 
      () => { 
       this.isLoading = false; 
      } 
     ); 
    } 
    } 
+0

ナビゲーションへの有効な経路を相対的に含まthis.auth.lastUrlていますか? (つまり、完全なURLではない) – chrispy

+0

'this.auth.lastUrl'のconsole.log出力 – Bean0341

+0

私は実際に同僚が問題を指摘したばかりです: https://github.com/angular/angle/issues/13530 – blgrnboy

答えて

関連する問題