Angular canActivate-减慢应用程序的运行速度。什么时候打电话?
我有一个带有.net核心后端的angular应用程序。我正在使用windows active directory进行用户授权/标识。一切正常,但我感觉应用程序运行缓慢。。。我已经确认发生这种情况,因为我正在检查每个组件负载上的用户是否有效Angular canActivate-减慢应用程序的运行速度。什么时候打电话?,angular,performance,canactivate,Angular,Performance,Canactivate,我有一个带有.net核心后端的angular应用程序。我正在使用windows active directory进行用户授权/标识。一切正常,但我感觉应用程序运行缓慢。。。我已经确认发生这种情况,因为我正在检查每个组件负载上的用户是否有效 canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> { if (this.auth.is
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> {
if (this.auth.isAuthenticated) {
return true;
} else {
return this.router.parseUrl('/notAuthorized');
}
});
canActivate(路由:ActivatedRouteSnapshot,状态:RouterStateSnashot):可观察{
if(this.auth.isAuthenticated){
返回true;
}否则{
返回此.router.parseUrl('/notAuthorized');
}
});
“isAuthenticated”是一种调用后端并检查用户是否有效的方法
那么,关于处理这种情况的最佳做法有什么建议吗?由于每个路由上都有服务器调用,因此速度减慢,您可以将AuthSession存储在会话存储中,并检查会话是否存在
“isAuthenticated”是一种调用后端并检查用户是否有效的方法
,这就是问题所在。如果您使用的是基于令牌的身份验证,只需将令牌存储在本地分拣中,并检查令牌是否可用。每次调用canActivate时都不需要检查后端。您所要做的就是为401
创建一个错误拦截器并相应地注销。请查看文章:谢谢,但我使用的是windows active directory,所以我不确定如何使用AuthSession。。。