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;
}
);
}
}
ナビゲーションへの有効な経路を相対的に含まthis.auth.lastUrlていますか? (つまり、完全なURLではない) – chrispy
'this.auth.lastUrl'のconsole.log出力 – Bean0341
私は実際に同僚が問題を指摘したばかりです: https://github.com/angular/angle/issues/13530 – blgrnboy