我使用的是一个authguard,它正在检查一个函数的真实性,该函数只是简单地将一个get请求发送到服务器而无需身份验证,但是当我在浏览器中打开该应用程序时,它将占用大量RAM
我不确定这是什么原因,但是当我删除该函数的代码时,应用程序运行就没有任何问题
check login function:
checkLogin(){
return this.http.get<String>(environment.url + '/users/me', {
withCredentials: true }).pipe(catchError(this.errorHandler));
}
is user logged in function:
isUserLoggedIn() {
let user = sessionStorage.getItem('username');
this.checkLogin().subscribe(error => {
sessionStorage.clear();
}
return !(user === null);
);
Auth guard:
export class AuthGuardService implements CanActivate {
constructor(private router: Router,
private authService: AuthenticationService) { }
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
if (this.authService.isUserLoggedIn())
return true;
this.router.navigate(['login']);
return false;
}
}
当我调用方法get时发生错误,但是它一直显示在控制台上!