我有一名警卫保护一些路线。
如果用户无法访问指定路线,警卫应执行以下操作:
routerLink
)内进行导航,则我应该检查什么才能知道要选择哪条执行路径?
答案 0 :(得分:0)
查看此链接https://v2.angular.io/docs/ts/latest/guide/router.html#!#query-parameters
。在您的authGuard实施中,您可以获取当前网址,并使用RouterStateSnapshot
模块中的ActivatedRouteSnapshot
和'@angular/router'
进行检查。要知道用户是否已经在Angular中,您可以使用此APP_INITIALIZER。这是一个在初始化应用程序时执行的函数。这是一个实现How to call an rest api while bootstrapping angular 2 app。想法是使用sessionStorage存储用户是否来自Angular之外。然后在您的AuthGuard中,您可以检查sessionStorage中的值(一旦页面被销毁就会被销毁。确保您仍然可以使用。