Он не перенаправляет после входа в систему, потому что вы не говорите ему.
Ваш метод входа в службу аутентификации должен возвращать результат метода, который уже существует. Это, вероятно, обещание или наблюдаемое. Это позволит компоненту входа в систему знать, когда ответ входа в систему возвращается и будет вести себя соответствующим образом.
Если ответ входа в систему успешен, вам нужно перейти на любую страницу, которая подходит. В этом случае это либо обратный URL, который вы в настоящее время получаете в службе, либо маршрут по вашему выбору.
компонент входа
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent {
constructor(private auth: AuthService,
// inject Router and ActivatedRoute into components, not services
private route: ActivatedRoute,
private router: Router) {
}
login() {
// assuming promise will be returned from auth service
// TODO: handle errors and display login error - out of scope for this question
this.auth.login()
.then(message => {
// moved from auth service
const returnUrl = this.route.snapshot.queryParamMap.get('returnUrl') || '/';
// now do the navigation
this.router.navigateByUrl(returnUrl);
});
}
}
auth услуга
login(): Promise<string> {
// I'm assuming that this is a promise that returns a message
// for the purposes of demonstrating the general login pattern.
return this.afAuth.auth.signInWithRedirect(new auth.GoogleAuthProvider());
}