我有一个 angular2 项目,
我使用 'canActivate' Guard 阻止了一些路由组件
例如:守卫检查用户是否登录并仅为注册用户阻止组件。
但是,我对守卫呼叫的时间有疑问。
当应用程序加载时 - 我调用 AutoLogin 请求(使用令牌登录)。警卫在请求完成之前打电话。
因此,如果用户使用警卫刷新页面,则警卫会在请求完成之前阻止该页面。
请求完成后有什么方法可以打电话给守卫吗?
- - 更新 - -
我的代码结构:
user.service 包括:
- 自动登录调用 - 返回 Observable
- EventEmitter 用于观察用户发生变化时的变化(登录、注销、更新等)
- 获取当前保存用户的函数
app.component 包括:
- 自动登录请求的构造函数调用 - 用于在进入站点时加载更新的用户
login.guard 包含:
- 检查用户是否现在登录(不仅是否保存了令牌)
我想在自动登录完成app.component中的请求后用户更改后再次检查警卫