给所有请求添加token 与 路由拦截器

设置baseURL

let _baseUrl = "https://api.zhiyedang.cn";
const http = axios.create({
    baseURL: _baseUrl
})
export const baseURL = _baseUrl

 

给所有请求添加token

http.interceptors.request.use(
    function(config) {
        // 在请求之前干一些事 , 比如 : 统一的设置token
        if ($cookies.isKey('isLogin')) { //比如登陆不需要token,所以只有 有token时才带
            config.headers.Authorization = JSON.parse(window.localStorage.getItem("Login")).token
        }
        return config
    },
    function(error) {
        // 在请求失败的时候干一些事
        return Promise.reject(error)
    }
)

 

路由拦截器

http.interceptors.response.use(function(response) {
    // 响应成功后执行
    //如果返回的是无效的token,就把他打回登陆
    if (response.data.message == '您未登录或者登录状态已过期') {
        //销毁token
        localStorage.removeItem('Login')
        window.$cookies.remove('isLogin')
        //警告提示
        // new Vue().$message.error('无效的token')
        //打回登陆
        router.push('/login')
    }
    return response;
}, function(error) {
    // 响应出错 执行
    return Promise.reject(error);
});

 

posted @ 2020-09-16 11:54  路西德  阅读(1855)  评论(0)    收藏  举报