Я пытаюсь проверить каждый запрос axios на наличие токена внутри заголовка для непубличных путей. Я хочу, чтобы пользователь заходил на страницу входа, если токен не найден. Но это внутри приложения reactjs. Каким образом это может произойти?Howto переадресовать из перехватчика axios в приложении action?
axios.interceptors.request.use(function (config) {
//If the header does not contain the token and the url not public, redirect to login
var accessToken = null;
if(sessionStorage.getItem('currentUserString')){
accessToken = 'bearer '+JSON.parse(sessionStorage.getItem('currentUserString')).tokenDetails.accessToken;
}
var configURL = config.url;
//if token is found add it to the header
if (accessToken) {
if (config.method !== 'OPTIONS') {
config.headers.authorization = accessToken;
}
}
//otherwise if the request is not for login page/auth service/home redirect to login page
else if(!isNotOpenPath(config.url)){
//we may want to store current path in the cookies. This can be retrieved after login is successful
//WHAT TO DO HERE TO TAKE USER TO LOGIN PAGE IN THE REACT JS APP????
}
}
Как сигнализировать о реакции приложения, особенно мы не имеем отправки здесь. Могу ли я использовать document.location.href='\login'
?
Почему не window.location «loginPath» =? – Hosar
Хорошо. Но это был бы подход. правильно? Нет конкретного способа реагирования? –