Поясните, пожалуйста, как обрабатывать ответы от сервера с использованием объекта observable?
У меня настроен роутинг и стоит защитник, который проверяет токен на валидность. Это некоторая песочница, разбираюсь что к чему в angular'e. Если допустим я в токен загоню не валидный или вообще 0 например. Как работать в этом случае?
AuthenticationGuard(Проверка токена на валидность)
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
if(localStorage.getItem('Token')){
let token = localStorage.getItem('Token');
this.authService.verifyToken(token)
.subscribe(res => {
if(res['token'] == token){
this.router.navigate(['/login']);
}
});
return true
} else {
this.router.navigate(["/login"]);
}
}
AuthService
backendUrl = "http://127.0.0.1:8000/";
constructor(private http: Http,
private router: Router) { }
verifyToken(token: string): Observable<{}>{
let urlVerify = 'api-token-verify'
let headers = new Headers({'Content-Type':'application/json'});
let options = new RequestOptions({headers: headers});
return this.http.post(this.backendUrl+'api-token-verify/', {token}, options)
.map((response: Response) => response.json())
.catch(this.handleError);
}
handleError(error: any){
return Observable.throw(error.message || error.json());
}