记住未经身份验证的操作

时间:2017-02-22 00:20:47

标签: angular

是否有一种内置于angular2中的方法,类似于Django的“下一个动作”,它记得用户在尝试执行经过身份验证的操作时尝试做什么?

情景:

  1. 用户未登录
  2. 用户尝试查看用户X的个人资料
  3. 用户被重定向到登录页面
  4. 用户登录
  5. 用户被重定向到用户X的个人资料页面

1 个答案:

答案 0 :(得分:1)

在你的Angular2后卫上你可以做到以下几点:

canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
  // Logged in logic.

  // If not logged in store the state.url
  localStorage.setItem('redirectUrl', state.url);

  // Not logged in logic.
}

登录成功后,登录功能可以使用以下方式重定向:

if (localStorage.getItem('redirectUrl')) {
  this.router.navigate([localStorage.getItem('redirectUrl')]);
}