Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 防止用户使用路由保护返回某些路由_Angular - Fatal编程技术网

Angular 防止用户使用路由保护返回某些路由

Angular 防止用户使用路由保护返回某些路由,angular,Angular,我想知道是否有办法防止用户返回某些路线 现在基本上我的问题是,用户将登录并通过login/callback路径,该路径对用户进行身份验证并决定他们从那里去哪里,现在如果用户按下浏览器返回并返回到该路径,他们就会卡在那里 我有更多的例子,但这是最容易理解的 所以我基本上想在这些路由上设置一个routeGuard,如果用户按下返回到当前路由,它会说些什么 现在我知道我可以使用canActivate()设置如下内容 export class PreventBackGuard implements Ca

我想知道是否有办法防止用户返回某些路线

现在基本上我的问题是,用户将登录并通过
login/callback
路径,该路径对用户进行身份验证并决定他们从那里去哪里,现在如果用户按下浏览器返回并返回到该路径,他们就会卡在那里 我有更多的例子,但这是最容易理解的

所以我基本上想在这些路由上设置一个routeGuard,如果用户按下返回到当前路由,它会说些什么

现在我知道我可以使用
canActivate()
设置如下内容

export class PreventBackGuard implements CanActivate {

  constructor(public activatedRoute: ActivatedRoute, public router: Router)

  canActivate(): boolean {
    // do something here
    console.log(this.activatedRoute);
  }
}

因此,我知道我可以通过
activatedRoute
获取当前路线(我要去的路线),但我似乎无法获取我之前使用的路线,我不确定当用户通过“后退”按钮导航到该路线时,我如何知道。。有人有什么想法吗???

为什么需要获取上一个根目录?如果您向根目录添加auth Gaard,并且它在canActivate方法中返回false,那么它不会让用户转到下一个根目录,所以用户将停留在同一页面上,所以在登录页面示例中,canActivate方法应该如下所示

canActivate(): boolean {
     if(userLoggedIn){
         return false;
      }
    return true
  }

这样,如果用户已经登录,它将不允许他们访问登录页面并强制他们停留在同一页面上

为什么需要获取上一个根用户?如果您将auth gaurd添加到根用户,并且在canActivate方法中返回false,那么它将不允许用户转到下一个根用户,所以用户将停留在同一页面上,以便在您的登录页面上示例:您的canActivate方法应该如下所示

canActivate(): boolean {
     if(userLoggedIn){
         return false;
      }
    return true
  }
这样,若用户已经登录,它将不允许他们访问登录页面并强制他们停留在同一页面上