在我的 Angular 应用程序的某些页面上,我想验证会话未过期。
我在本地存储中有令牌,所以在 AuthService 我有:
isUserAuthenticated(): Observable<boolean> {
const token = localStorage.getItem('token');
if(token) {
return this.http.get<any>(this.apiUrl.getUser, {headers: {'X-Auth-Token': token}}).pipe(
tap(data => {return true}),
catchError(this.handleError)
);
} else {
return of(false);
}
}
首先:上面的代码正确吗?
我的 canActivate 函数应该是什么样子的?
我试过这个:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot):Observable<boolean>|boolean {
return this.authService.isUserAuthenticated().pipe(map(User => {
return (User) ? true : false;
}));
}
但是当令牌过期时它会给我错误。