В моем приложении я делаю несколько HTTP-запросов.Всем им нужен заголовок аутентификации с токеном доступа (и некоторыми другими значениями заголовка).Я определил в переменной заголовка типа HttpHeaders
(см. Код # 1), чтобы использовать ее как this.http.get(this.myUrl, { headers: this.headers})
.
В моем случае токен должен обновляться со временем, и я хочу изменить заголовок, чтобы он содержалновейший токен.
В моем коде есть функция обновления, которая должна обновлять токен и заменять старый токен в заголовке HTTP на новый.
Мой первый подход заключался в использовании предоставленного set () метод (см. код # 2).Это добавило новое значение в заголовок и не заменило его (теперь у меня было два варианта авторизации).
Мой второй подход состоял в том, чтобы использовать delete () метод (см. Код # 3) иудалите Authorization, а затем используйте метод append () и новый метод.Это привело к аналогичному результату.
Мой последний подход состоял в том, чтобы просто использовать метод delete () (см. Код # 4).
образцы кода
код # 1:
headers = new HttpHeaders()
.set('Content-Type', 'application/json')
.set('Accept', 'application/json');
код # 2:
this.headers = this.headers
.set('Authorization', 'Bearer ' + access_token);
код # 3:
this.headers = this.headers.delete('Authorization');
this.headers = this.headers.append('Authorization','Bearer ' + access_token);
код # 4:
this.headers = this.headers.delete('Authorization','Bearer ' + access_token);
результаты
Я ожидал, что либо значение заголовка ({'Authorization', 'Bearer ' + access_token})
будет заменено (1-й подход).Фактический результат состоял в том, что он только что был добавлен:
{"Authorization", "Bearer access_token-old"}
{"Authorization", "Bearer access_token-new"}
И для второго подхода я ожидал удалить и добавить новое значение, которое привело к добавлению еще двух значений:
{"Authorization", undefined}
{"Authorization", "Bearer access_token-new"}
Мой последний подход привел к тому же результату, что и в моем первом подходе, вместо простой замены значения.
Знаете ли вы какой-либо метод, чтобы просто заменить access_token / значение в {'Authorization','Bearer ' + access_token}
?