Я пытаюсь получить профиль пользователя из пожарного магазина firebase, для которого требуется заголовок авторизации. После получения токена после входа. Я добавляю его в заголовки по умолчанию ax ios, немедленный запрос, который он сделал после входа в пожарную, успешен, но после обновления все запросы не выполняются.
Наблюдая за вкладкой сети на Chrome devtools, я обнаружил, что первое выполненное требование имеет заголовок авторизации, как и ожидалось. то есть:
Authorization: Bearer eyJhbGciOiJS....
, в то время как все неудачные запросы имеют заголовки с дополнительным словом «Bearer», которое ax ios добавляет самостоятельно.
Authorization: Bearer Bearer eyJhbGciOiJS....
Я удалил заголовок по умолчанию и установил заголовок явно по запросу путем извлечения его из localstorage. Так все работает хорошо. Это устраняет проблему с заголовками по умолчанию ax ios.
Ниже приведен код. Просьба посмотреть
// the default header is set here.
const setAuthorizationHeader = token => {
localStorage.setItem('idToken', `Bearer ${token}`);
axios.defaults.headers.common['Authorization'] = `Bearer ${token}`;
};
// the req made here.
const res = await axios.get('/user');
После входа в систему, на вкладке сети devtool Chrome наблюдается немедленный успешный запрос заголовка Authozication, как и ожидалось
Authorization: Bearer eyJhbGciOiJSU....
, в то время как все остальные неудачные запросы после обновления страницы
Authorization: Bearer Bearer eyJhbGciOiJSU...
Кто-нибудь сталкивался с таким поведением топора ios раньше? Я использую топор ios ^ 0.19.2 ..
ОБНОВЛЕНИЕ 1: сохранение без явного добавления «Несущий» приводит к тому же выводу
axios.defaults.headers.common['Authorization'] = `${token}`;
первый запрос, сделанный после входа в систему , является токеном без ключевого слова Bearer, и все запросы после обновления имеют ключевое слово Bearer дважды перед фактическим токеном.