参考https://blog.51cto.com/hequan/2316979?source=dra
前端:
src/store/module/user.js
// 获取用户相关信息
getUserInfo ({ state, commit }) {
return new Promise((resolve, reject) => {
try {
getUserInfo(state.token).then(res => {
const data = res.data
// commit('setAvator', data.avator)
commit('setUserName', data.name)
commit('setUserId', data.user_id)
// commit('setAccess', data.access)
commit('setHasGetInfo', true)
resolve(data)
}).catch(err => {
reject(err)
})
} catch (error) {
reject(error)
}
})
},
config/index.js
baseUrl: {
dev: 'http://127.0.0.1:8026',
pro: 'https://produce.com'
},
src/api/user.js
export const getUserInfo = (token) => {
return axios.request({
url: 'get_info/1/',
params: {
// token
},
method: 'get'
})
}
src/libs/axios.js
getInsideConfig (url) { //加url
const config = {
baseURL: this.baseUrl,
headers: {
//
}
}
//加一个url判断,非login页面,就从user.token中取token,保存到headers['Authorization']
if (url !== 'login') {
config.headers['Authorization'] = 'token ' + store.state.user.token
}
return config
}
………………
//最下面
request (options) {
const instance = axios.create()
// options = Object.assign(this.getInsideConfig(), options)
options = Object.assign(this.getInsideConfig(options.url), options) // 添加 options.url
this.interceptors(instance, options.url)
return instance(options)
}
后端,使用
serializers.Serializer
返回json