Почему Safari использует учетные данные веб-сервера вместо учетных данных при отправке запросов API? - PullRequest
1 голос
/ 27 февраля 2020

Служба, которую я использую в приложении Angular, использует Basi c Auth, а также сервер, на котором работает приложение. Safari является единственным браузером, который вместо использования учетных данных, хранящихся в хранилище и полученных через:

this.service.configuration.username = JSON.parse(localStorage.getItem("basic_token")).username;

this.service.configuration.password = JSON.parse(localStorage.getItem("basic_token")).password;

, использует учетные данные, используемые для сервера Basi c Auth. Я вижу это в DeveloperTools-> Network. Ошибка возникает только в некоторых версиях Safari и только в производственной среде (localhost использует правильные учетные данные).

Ниже службы:

public service(observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
let headers = this.defaultHeaders;
if (this.configuration.username || this.configuration.password) {
headers = headers.set('Authorization', 'Basic ' + btoa(this.configuration.username + ':' + this.configuration.password));

// headers are printed with correct User and password
console.log(headers);
}

....................

return this.httpClient.get<any>(`${this.basePath}/service`,
{ 

withCredentials: this.configuration.withCredentials,
headers: headers,
observe: observe,
reportProgress: reportProgress
});}

Есть идеи, что вызывает ошибку?

Спасибо!

...