Использование маршрутизатора в перехватчике, расположенном в index.js - PullRequest
0 голосов
/ 17 января 2019

У меня есть этот фрагмент кода, расположенный внутри файла index.js.

Ситуация здесь такова, что когда есть код ошибки 403, я хочу, чтобы токен пользователя был удален, а затем автоматически отображался компонент входа в систему.

Проблема в том, что index.js не имеет доступа к this.props.history и, следовательно, не может его использовать. Каков еще один способ перенаправления на страницу входа?

axios.interceptors.response.use(res => {
    console.log(res);
    return res;
}, err => {
    console.log(err.response);
    if (err.response.status === 403) {
        AuthHelper.removeUserToken();
        // Go back to login page by this.props.history.push('/login');
    }
    return Promise.reject(err);
})

1 Ответ

0 голосов
/ 17 января 2019

Я вижу один подход, который будет работать для вас.

При получении 403 установите флаг в хранилище резервов (не уверен, используете ли вы его), если нет, вам нужно установить его где-нибудь, где он доступенпо всем компонентам.

Теперь во всех компонентах можно сказать

{token ? null:<Redirect to="/login" />}

Теперь, когда 403 получено в axios, оно будет перенаправлено на страницу входа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...