En el proyecto en el que estoy trabajando, es común pasar enlaces a detalles de una compra en el correo electrónico, pero cuando el usuario abre el enlace, solicita autenticación en el sistema, pero después de iniciar sesión, es redirigido a la página de inicio ( el panel del sistema) y no para los detalles de compra.
if (admin) { that.router.navigate(['/main-panel'], { replaceUrl: true }); } else (seller) { that.router.navigate(['/main-panel-seller'], { replaceUrl: true }); }La única validación que hago es a dónde voy a enviar a este usuario, ¿hay alguna forma de verificar la url anterior? O en algún lugar donde pueda encontrar esta información de URL almacenada.
Cuando redirige al usuario a la página de inicio de sesión, puede pasar la URL original como params y navegar hasta ella cuando haya iniciado sesión.
Por ejemplo: en el auth gard
this.router.navigate(['login'], { queryParams: { returnUrl: state.url }});y en el controlador:
this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/'; his.router.navigateByUrl(this.returnUrl);( Fuente )