Доступ к токену носителя от Axios - PullRequest
1 голос
/ 09 февраля 2020

Какой код можно использовать для доступа к токену носителя, который был сохранен в localStorage?

const apiClient = axios.create({
  baseURL: 'http://localhost:5000/api/v1',
  withCredentials: false,
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json'.
    Authorization: ???
  }
});

У меня проблемы с отправкой заголовков аутентификации с использованием службы ax ios. Когда я жестко кодирую существующий токен-носитель, он работает, но как я могу динамически получить доступ к нему для каждого пользователя при его изменении?

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

A перехватчик запросов может использоваться для установки заголовка Authorization перед каждым исходящим запросом.

// Add a request interceptor
axios.interceptors.request.use(function (config) {
    let token = localStorage.getItem('bearer_token')

    if (token) {
        config.headers.Authorization = `Bearer ${token}`
    }


    return config;
  }, function (error) {
    // Do something with request error
    return Promise.reject(error);
  });
0 голосов
/ 10 февраля 2020

Вот что сработало! Спасибо DigitalDrifter за то, что он показал мне функцию getItem в localStorage.

Я хранил токен носителя в состоянии 'user', поэтому я получил объект, проанализировал его, а затем вставил в заголовок Authorization.

const user = JSON.parse(localStorage.getItem('user'));
const token = user.token;

const apiClient = axios.create({
  baseURL: 'http://localhost:5000/api/v1',
  withCredentials: false,
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json',
    Authorization: `Bearer ${token}`
  }
});
...