路由鉴权和接口封装

 //路由鉴权
router.beforeEach((to,from,next)=>{
  if(to.meta.goLogin){
      const item = localStorage.getItem('token')
    if(item){
      next()
    }else{
      next({
        path:'/login',
      })
    }
  }else{
    next()
  }
})

配置公共地址

export default{
    prod:{//线上地址
        baseUrl:`https://www.liulongbin.top:8888`
    },
    test:{//测试接口
        baseUrl:`https://www.liulongbin.top:8888`
    },
    local:{//本地地址
        baseUrl:`https://www.liulongbin.top:8888`
    }
}

封装axios

import axios from 'axios'
import evn from './evn.js'
//引入Elment UI 组件
import { Message} from 'element-ui'
const server = axios.create({//创建axios实例
    baseURL:`${evn.prod.baseUrl}/api/private/v1`,//配置公共头部
    timeout:5000//请求超时的时间
})

//请求拦截
server.interceptors.request.use((config)=>{
    // console.log('config:',config);
    if(config.url !== '/login'){ //不等于login就获取token
        const token = localStorage.getItem('token')
        if(token){ //获取到就设置在响应头上     Authorization--随便起的,起的这个就是以后的token了
            config.headers['Authorization'] = token
            // config.headers.token = token
        }
    }
    return config
},err=>{//错误回调
    return Promise.reject(err)
})

//响应拦截
server.interceptors.response.use(res=>{
    // console.log('res:',res);
    const resOK = [200,201,204]//状态码
    if(resOK.includes(res.data.meta.status)){//检测是否包含这些状态码
     //轻提示
    Message({
        message: res.data.meta.msg,
        type: 'success'
       })  
       return res.data.data//获取到的数据return出来
    }
    return Promise.reject('返回数据有误,请检查')//如果不包含这些响应码就返回
},err=>{
    return Promise.reject(err) 
})

export default server //模块化导出

封装项目接口

import request from './request'

//封装登录接口
import request from '../request'

const user = async function(data){//用户数据
    let {state} = await request({url:'/users',method:'get',data:data})
    return state
}
const userAdd = async function(data){//添加用户
    let state = await request({url:'/users',method:'post',data:data})
    return Promise.resolve(state)
}
const userChange = async function(data){//修改用户
    let state = await request({url:`users/:${data.uId}/state/:${data.type}`,method:'post'})
    return Promise.resolve(state)
}

export{
    user,
    userAdd,
    userChange
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值