npm install js-cookie --save
import axios from 'axios'
import store from "./store";
axios.defaults.baseURL="http://127.0.0.1:3000/"
export default function setAxios() {
axios.interceptors.request.use(config => {
if (store.state.token) {
config.headers['Authorization'] = `Bearer ${store.state.token}`
}
return config
})
}
import Cookie from "js-cookie";
... ...
Cookie.set("token", res.data.token);
this.$store.commit("changeIsLogin", 1);
this.$router.push({ name: "home" });
state: {
token: '',
isLogin: 0
},
mutations: {
changeIsLogin(state, n) {
state.isLogin = n
},
setToken(state, value) {
state.token = value
}
},
{
path: "/user",
component: () => import("@/views/UserInfo.vue"),
meta: {
requireAuth: true
}
},
router.beforeEach((to, from, next) => {
store.commit('setToken', Cookie.get('token'))
if (store.state.token) {
store.commit('changeIsLogin', 1)
}
if (to.meta.requireAuth) {
if (store.state.token) {
next()
} else {
next({ path: '/login' })
}
} else {
next()
}
})