原理: 将服务端响应的 token 存储到 vuex 和 cookie 中,然后每次请求都携带 token
(一)将 token 存储到 cookie 中
原理: 使用 js-cookie 包中的 getToken、setToken、removeToken 来操作 cookie
(二)每次请求都携带 token
原理: 配置请求拦截器。使其每次请求都携带 token
1、判断 vuex 中的 token 是否有值,如果有值就进入,并在请求头中携带 token(-- utils/request.js)
import store from '@/store'
// 请求 拦截器
service.interceptors.request.use(config => {
if (store.state.user.token) {
config.headers['Authorization'] = store.state.user.token
}
return config
}, error => {
return Promise.reject(error)
})