React / Axios — как сохранить текущую страницу, чтобы я мог перенаправлять после повторной аутентификации

#reactjs #axios #react-router

Вопрос:

Я относительно новичок в React. Я использую инструмент axios-auth-refresh в https://www.npmjs.com/package/axios-auth-refresh , хотя проблема не относится конкретно к этому. Я хочу иметь возможность обрабатывать случай, когда срок действия токена обновления истек. В этом случае я хочу перенаправить на страницу входа в систему, а затем, после повторной аутентификации пользователя, направить их обратно на страницу, на которой они были изначально. Поскольку код axios не является частью компонента, я не могу понять, как получить доступ к текущей странице, чтобы я мог ее сохранить.

Я обнаружил, что могу добавлять пользовательские элементы конфигурации в вызов axios, чтобы я мог кодировать axios.post(url, {'currentPage' : '/myCurrentUrl'}) . Но это требует от меня кодирования этой конфигурации для каждого вызова axios. Я хочу иметь возможность вызывать axios (или вызывать какую-либо функцию, вызывающую Axios), которая может определить, с какого URL страницы она была вызвана.

Есть ли какой-нибудь способ сделать это?

Ответ №1:

В ваших реквизитах по умолчанию для компонента в маршрутизаторе у вас есть доступ к location объекту. Вы можете передать местоположение вызову axios следующим образом:

 axios.post(url, {'currentPage': props.location.pathname})