我将这段代码放在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);
})
答案 0 :(得分:0)
我看到一种对您有用的方法。
在收到403时,请在redux存储中设置一个标志(不确定是否正在使用它),否则,您需要将其设置在所有组件都可以访问的位置。
现在在所有组件中您都可以说
{token ? null:<Redirect to="/login" />}
现在,只要在axios中收到403,它就会重定向到登录页面。