У вас есть поток входа в систему, и вы сохраняете пользовательский токен в localStorage как ключ usertoken
. Вы также убедились, что ваши запросы обрабатываются правильно, если установлен заголовок авторизации.
Самый простой способ работать с запросами API - это немного больше абстрагироваться от axios, автоматически добавлять токен авторизации и, возможно, предварительно обрабатывать полученный ответ. Например, вы можете захотеть обрабатывать некоторые ошибки глобально, а не в каждом конкретном случае, или хотите преобразовать запрос во что-то, что всегда одинаково.
Сначала вы хотите создать абстракцию, которая вызывает axios.request
. Вы можете передать ему объект конфигурации, как описано здесь . Сейчас для вас важнее всего пара headers
ключ-значение, но вы можете захотеть расширить ее в будущем.
export default request (config) {
const userToken = window.localStorage.getItem('usertoken');
const requestConfig = { ...config };
if (!requestConfig.headers) {
requestConfig.headers = {};
}
if (userToken) {
requestConfig.headers.authorization = `Bearer ${userToken}`;
}
return axios.request(requestConfig);
}
Теперь мы можем расширить это:
export default post (url, data = {}, config = {}) {
return request({
...config,
method: 'POST'
url,
data
});
}
При проверке запроса в консоли разработчика вы должны увидеть, что, если токен пользователя правильно задан в localStorage, в вашем запросе есть дополнительный заголовок, который отправляется на сервер.