加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用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的最终版本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读