Я провожу 2 дня с этой проблемой, не могу найти решение.
У меня проблема с угловым перехватчиком HTTP в проекте Ionic 4.
После успешного входа в систему маршрутизатор переходит на домашнюю страницу и вызывает некоторый API с токеном.
При успешном входе в систему я сохраняю токен в localStorage и использую этот токен в перехватчике HTTP,
На домашней странице токен не был впервые указан в заголовке авторизации.
Если я обновлю приложение, то оно будет нормально работать,
Здесь я прикрепил мой фрагмент кода ниже.
HTTP INTERCEPTOR:
intercept(httpReq: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
if (localStorage.getItem('tokenKey')) {
const token = localStorage.getItem('tokenKey');
const req = httpReq.clone({
setHeaders: {
'Authorization': 'Bearer ' + token,
'Content-Type': 'application/json'
}
});
return next.handle(req);
} else {
const req = httpReq.clone({
headers: httpReq.headers.set('Content-Type', 'application/json'),
});
return next.handle(req);
}
}
Вот мой код для входа в систему
login() {
this.authService.login(this.user)
.then((data: any) => {
this.events.publish('user:created', data.profile);
this.events.publish('token:created', data.token);
if (data.token) {
this.router.navigate(['home']);
}
}).catch(error => {
this.presentAlert(error);
});
}
Вот код услуги входа:
login(user) {
return new Promise((resolve, reject) => {
this.http.post(ApiEndPoint + 'signin/index', user).subscribe((data: any) => {
localStorage.setItem('tokenKey', data.data.token);
this.authState.next(true);
resolve(data.data);
}, err => {
reject(err);
});
});}