1.安装 vue-cookies
cnpm install vue-cookies --save
2.在登录接口中 设定cookies
this.$http.post(global.domain + '/login/check', {
username: this.ruleForm.username,
password: this.ruleForm.password
}) .then(function (response) {
var dataObj = response.data
console.log(dataObj)
if(dataObj.code == 200) {
that.token = dataObj.data.token;
that.$cookies.set('token', that.token, '45d')//--------------------------就是这句 第三个参数是过期时间
}) .catch(function (error) {
console.log(error)
});
3.在main.js中设置拦截器
// 拦截器 每个接口加token
axios.interceptors.request.use(function(config) {
if(VueCookies.get('token')) {
config.headers.Authorization = String(VueCookies.get('token'))//具体是什么样的头 你和后端对接
}
return config
}, function(error) {
return Promise.reject(error)
})
// 没有就重新登录
axios.interceptors.response.use(function(response) {
// console.log(response)
// if(response.data.code == 401) {
// router.replace({
// name: 'login'
// });
// }
return response
}, function(error) {//我的这个是直接走的失败401 status 如果你想走成功的回调就走上边的 具体走哪个还是你们同后端商量统一就好
// console.log(error)
if (error.response.status==401) {
router.replace({
name: 'login'
})
}
return Promise.reject(error) // 返回接口返回的错误信息
})