如何在 react js 拦截器中使用 axios?

时间:2020-12-19 17:24:30

标签: reactjs axios

如果有人在登录后编辑他的令牌,我会尝试删除令牌: 我使用此代码但什么也没发生,当我更改令牌手册并刷新时什么也没发生; 我需要知道如何检查令牌是否为真并有权访问此页面,我需要了解它。

import axios from 'axios';

const AxiosInstance = (History = null) => {

const BaseURL = process.env.REACT_APP_DATABASE_URL;
let Headers = {};

if (localStorage.token) {
    Headers.Authorization = `Bearer ${localStorage.token}`;
}

const AxiosCreation = axios.create({
    baseURL: BaseURL,
    headers: Headers,
})

AxiosCreation.interceptors.response.use(
    (response) =>
        new Promise((resolve, reject) => {
            resolve(response);
        }),
    (Error) => {
        if (!Error.response) {
            return new Promise((resolve, reject) => {
                reject(Error);
            })
        }
        if (Error.response.status === 403) {
            localStorage.removeItem('token');
            if (History) {
                History.push('/login');
            } else {
                window.location = '/login';
            }
        } else {
            return new Promise((resolve, reject) => {
                reject(Error);
            })
        }
    }
)
return AxiosCreation;
}

export default AxiosInstance;

0 个答案:

没有答案