使用Angular2,如何在登录重定向之前重定向到以前的url
发布时间:2020-12-17 07:40:26 所属栏目:安全 来源:网络整理
导读:使用Angular2创建单个页面应用程序,我拦截未经身份验证的用户访问自定义RouterOutlet中的非公用路由,并将其重定向到登录视图.成功登录后,我想将用户重定向到原来请求的视图,而不是默认视图. 我注意到路由器有一个导航到最后一个成功路由的renavigate()函数,
使用Angular2创建单个页面应用程序,我拦截未经身份验证的用户访问自定义RouterOutlet中的非公用路由,并将其重定向到登录视图.成功登录后,我想将用户重定向到原来请求的视图,而不是默认视图.
我注意到路由器有一个导航到最后一个成功路由的renavigate()函数,但最后一个成功的路由是/ auth / login,而不是最初请求的URL. 基本上:如何访问或确定先前请求的URL? 我真的不想诉诸传递查询字符串参数,除非我真的要.理想情况下,访问历史记录集作为路由器组件的一部分是很好的,类似于backbone.history!
>使用Auth Guard(实现
CanActivate)来防止未经身份验证的用户.参见
official documentation和例子
this blog.
>在守护者中使用 RouterStateSnapshot来捕获所请求的URL. canActivate(route: ActivatedRouteSnapshot,state: RouterStateSnapshot) { // keep the attempted URL for redirecting this._loginService.redirectUrl = state.url; } >使用Router(例如在login.component.ts中),成功验证后重定向到该URL.例如. this._router.navigateByUrl(的redirectUrl); 附: @MichaelOryl和@Vitali的建议将会起作用,但是我的方式更符合Angular2的最终版本. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |