У меня есть приложение Redux / React с прокси OAuth2. Когда прокси-сервер дает ответ 401, пользователь должен быть перенаправлен на страницу аутентификации. Вот основная идея c с использованием axios
и перехватчиков.
import axios from 'axios'
export const axiosApi = axios.create({
baseURL: '/proxy/api',
})
axiosApi.interceptors.response.use(response => {
// Intercept successful response data
return response
}, error => {
if (error.response && error.response.status === 401) {
// Redirect when not authenticated
window.location.href = '/proxy/authorize'
}
return Promise.reject(error);
})
Вот как выглядят действия Redux, использующие axiosApi:
export const fetchUsers = () => dispatch =>
new Promise((resolve, reject) => {
axiosApi.get(`users`)
.then(res => {
dispatch(fetchUsersData(res.data))
resolve(res)
})
.catch(err => {
reject(err)
})
})
Проблема в том, что window.location.href = '/proxy/authorize'
фактически не перенаправляет браузер. Это потому, что используется реагирующий маршрутизатор (V5)?