我有一个angular2项目,
我使用&can; canActivate'阻止了一些路线组件。后卫
例如:警卫检查用户是否已登录并仅阻止注册用户的组件。
但是,我在看守时间方面遇到了问题。
当app加载时 - 我调用AutoLogin请求(使用令牌登录)。 在请求结束之前,警卫打来电话。
因此,如果用户使用guard刷新页面,则保护会在请求完成之前阻止页面。
请求结束后有没有办法打电话给警卫?
---- ---- UPDATE
我的代码结构:
user.service包括:
app.component包括:
loggedin.guard包含:
我希望在自动登录完成app.component中的请求后用户更改后再次检查警卫
答案 0 :(得分:0)
警卫应该在用户不是匿名的页面上,所以在登录页面上不应该有警卫
Guard将在canActivate页面循环中触发,它将检查用户是否存在,如果是,则返回true,否则返回false。
当用户不存在时,您可以检查会话令牌(保存在浏览器/ cookie上)是否存在,如果是,则调用authenticate方法。