Проблема в том, что после входа в систему, если я нажимаю f5, API выводит мне сообщение «Ошибка 403», потому что this.username и this.password неопределены в перехватчике. Это моя аутентификация
authenticationService(username: String, password: String): Observable<Object> {
return this.http.get(`login/basicauth`,
{ headers: { authorization: this.createBasicAuthToken(username, password) } }).pipe(map((res) => {
this.username = username;
this.password = password;
this.registrationSuccessoLogin(username, password);
}).pipe(map(
(response: Response) => { return response.json(); }
)));
}
, и это мой перехватчик;
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
if (this.authenticationService.isUserLoggedIn() && req.url.indexOf('basicauth') === -1) {
console.log(this.authenticationService.username); //here is null
const authReq = req.clone({
headers: new HttpHeaders({
'Content-Type': 'application/json',
'Authorization': `Basic ${window.btoa(this.authenticationService.username + ":" + this.authenticationService.password)}`
})
});
return next.handle(authReq);
} else {
return next.handle(req);
}
}
после f5 на странице он печатает меня console.log(this.authenticationService.username);
= undefined, так что это дает мне 403, потому что программы могут войти в систему. Кто-нибудь может мне помочь?