好的,假设我有auth guard。我只想做一件简单的事情:发送请求到后端,以防它发送给我用户信息,这意味着用户是经过身份验证的,我想返回true。否则它会向我发送错误,所以我希望捕获该错误并重定向用户。如何在rxjs中做到这一点?这似乎过于复杂了..。我想要做的是检查用户是否已登录,以及他的令牌是否有效。所以我知道我需要发送一个请求,但是如何管理错误或响应呢?我也明白,如果本地存储中没有令牌,我应该返回false,甚至不应该发送任何请求。当然这是行不通的,但我根本不知道怎么做……
// guard
return this.authService.checkUserAuthenticated();
// service
checkUserAuthenticated() {
this.http.post(`${this.domainName}api/auth/userinfo`, null)
.subscribe(
(data) => true,
(err) => false
);
}发布于 2018-09-03 19:01:59
您可以使用authguard对后端进行api调用,然后返回true或false
export class AuthGuard implements CanActivate {
constructor(private router: Router, private service:Service) {}
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): boolean {
this.service.Authenticate().subscribe(
(data: any)=>{ any condition to check and then return true},
(error: any)=>{ return false;});
}
}并将authguard身份验证方法添加到路由文件。
https://stackoverflow.com/questions/52148327
复制相似问题