Мне нужно получить токен firebase от моего authService на перехватчик моего проекта angular 5: когда пользователь впервые проходит аутентификацию, я могу получить идентификатор токена без проблем, но как только я обновлю страницу (вспомните API)у меня есть это сообщение об ошибке:
Невозможно прочитать свойство 'getIdToken' со значением NULL в AuthService.push ../ src / app / core / auth.service.ts.AuthService.getUserIdToken (auth.service.ts: 144) в TokenInterceptor.push ../ src / app / core / token.interceptor.ts.TokenInterceptor.intercept (token.interceptor.ts: 31)
моя функция getToken в authService:
getUserIdToken(): Observable<string> {
return fromPromise ( this.afAuth.auth.currentUser.getIdToken() );
}
мой код перехватчика: intercept (запрос: HttpRequest, следующий: HttpHandler): наблюдаемый> {
if (request.url.indexOf('oauthCallback') > -1) {
return next.handle(request);
}
this.auth = this.inj.get(AuthService); // inject the authservice manually (see https://github.com/angular/angular/issues/18224)
return this.auth.getUserIdToken().pipe(
switchMap(token => {
request = request.clone({
setHeaders: {
Authorization: `Bearer ${token}`
}
});
return next.handle(request);
})
);
}
Спасибо за вашу помощь.