javascript - Cum pot redirecționa utilizatorul către o altă pagină după autentificare - Angular
În proiectul la care lucrez, este obișnuit să trimiți linkuri către detaliile unei achiziții prin e-mail, dar atunci când utilizatorul deschide linkul, i se cere autentificarea în sistem, iar după ce se loghează, este redirecționat către pagina principală (panoul sistemului) și nu către detaliile achiziției.
if (admin) {
that.router.navigate(['/main-panel'], { replaceUrl: true });
} else (seller) {
that.router.navigate(['/main-panel-seller'], { replaceUrl: true });
}
Singura validare pe care o fac este unde o să trimit acest utilizator, există vreo modalitate de a verifica URL-ul anterior? Sau undeva unde pot găsi informațiile despre acest URL stocate.
Răspuns #1
Când redirecționezi utilizatorul către pagina de autentificare, poți transmite URL-ul original ca parametru și să navighezi către el când este autentificat
De exemplu: în gardul de autentificare (metoda canActivate()):
this.router.navigate(['login'], { queryParams: { returnUrl: state.url }});
și în controler (metoda ngOnInit()):
this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/';
this.router.navigateByUrl(this.returnUrl);
(Sursă)
