【发布时间】:2018-01-25 07:59:01
【问题描述】:
在我的 Angular 4 应用程序中,我正在开发一个 oath Guard 服务。在那里我想检查令牌是否有效,如果没有,用户需要重新登录。
以下是我用来实现我想要的功能:
isLogedIn(){
return this.http.get(this.baseUrl+"/check-token?token="+this.currentUser.token).map(res => res.json())
.subscribe(response => {
let logedinUser = JSON.parse(localStorage.getItem('currentUser'));
if(response.message == "_successful" && localStorage.getItem("currentUser") != null){
return true;
}else{
return false;
}
},err =>{
console.log(err);
return false;
});
}
但事情是在 auth gurd 函数中,我无法获得该函数的确切输出值。 Bellow 是我的 auth gurd 函数:
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
console.log(this.userService.isLogedIn());
if (this.userService.isLogedIn()) {
return true;
} else {
this.router.navigate(['/login'], {
queryParams: {
return: state.url // curent url as a parameter to the login page
}
});
return false;
}
}
当我使用console.log(this.userService.isLogedIn()); 时,它会打印订阅者对象而不是返回值。如何从 isLogedIn() 函数返回值?
【问题讨论】:
标签: javascript angular callback return-value angular4-router