好的,假设我有身份验证防护。 我只想做一件简单的事情:向后端发送请求,以防它向我发送用户信息(这意味着用户已通过身份验证),我想返回true。否则它将向我发送错误,因此我想捕获该错误并重定向用户。 如何在rxjs中使用它?似乎太复杂了... 我要检查的是用户是否已登录以及其令牌是否有效。所以我知道我需要发送一个请求,但是一般如何处理错误或响应?我也了解,如果本地存储中没有令牌,则应返回false,甚至不发送任何请求。 当然这是行不通的,但我根本不知道该怎么做...
// guard
return this.authService.checkUserAuthenticated();
// service
checkUserAuthenticated() {
this.http.post(`${this.domainName}api/auth/userinfo`, null)
.subscribe(
(data) => true,
(err) => false
);
}
答案 0 :(得分:0)
您可以使用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身份验证方法。