this.username и this.password равны нулю, когда я делаю запрос - PullRequest
0 голосов
/ 08 апреля 2020

Проблема в том, что после входа в систему, если я нажимаю 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, потому что программы могут войти в систему. Кто-нибудь может мне помочь?

...