Inicio de sesión en la tienda de Route Guard

router.beforeEach((to, from, next) =>  {
  if(to.path === "/login"){
    next()
  }else{
    let token = localStorage.getItem('Authorization');
    if(token === null || token === ""){
      next('/login')
    }else{
      next()
    }
  }
})

importar Vue desde 'vue'
importar Vuex desde 'vuex'

Vue.use (Vuex)

exportar el nuevo Vuex.Store predeterminado ({ estado: { usuario: {}, // 存储autorización del token : localStorage.getItem ('Autorización')? localStorage.getItem ('Autorización'): ''



},
mutaciones: { changeLogin (estado, usuario) { state.Authorization = user.Authorization; localStorage.setItem ('Autorización', user.Authorization) }



},
acciones: { }, módulos: { }, captadores: {// Supervisar los cambios de datos getStorage (estado) {// Obtener información de inicio de sesión almacenada localmente if (! state.token) { state.token = JSON.parse (localStorage. getItem ()) } return state.token }









}
})
// almacenar localstorage
export const setStore = (key, data) => { // limpiar antes de almacenar para que siempre haya solo una ventana de información de cuenta.localStorage.clear (); // definir un tiempo para configurar Si expira , borrar let curTime = new Date (). getTime (); // almacenar datos y tiempo de almacenamiento let setdata = { data: data, time: curTime, }; // almacenar datos como tipo de cadena setdata = JSON.stringify (setdata) window.localStorage.setItem (clave, setdata) // console.log (setdata) }













// Obtener locastorage
export const getStore = () => { // Recorrer el localStorage actual para encontrar datos if (localStorage.length> 0) { for (let i = 0; i <localStorage.length; i ++) { let keyname = localStorage.key (i); let str = localStorage.getItem (keyname); str = JSON.parse (str) // Compare la hora para ver si expira let curTime = new Date (). getTime (); let tiem = 7 * 24 * 60 * 60 * 1000; if (curTime-str.time> tiem) { window.localStorage.clear (); } else { return str.data } } } } importar axios de "axios"; importar { Mensaje } de "element-ui"; importar Vue de'vue ';






















axios.defaults.timeout = 5000;
axios.defaults.baseURL = 'http://192.168.3.164:xxx';
const { $ mensaje } = Vue.prototype; // http solicitud 拦截 器axios.interceptors.request.use ( // 在 发送 请求 之前 做 了 什么config => { console.log (config) // if (localStorage.getItem ("token")) { // config .headers.Authorization = localStorage.getItem ("token"); // 把 localStorage 的 token 放在 Authorization 里//} // config.headers ['x-token'] = localStorage.getItem ('token'); / / const token = localStorage.getItem ('token') // if (token) { // token? config.headers.Authorization = token: null; //} if (localStorage.getItem ('Autorización')) {
















config.headers.Authorization = localStorage.getItem ('Autorización');
}
return config;
},
error => { return Promise.reject (error) }

);
// http interceptor de respuesta
// axios.interceptors.response.use (
// respuesta => { // if (response.data === 401) { // if (response.data == 10001) { / / Mensaje ({ // mensaje: 'el token no existe o ha caducado, inicie sesión de nuevo', // escriba: 'advertencia', // duración: 2000 //}); //} // este. $ Enrutador. replace ('/ login'); // localStorage.removeItem ('token') //} // devolver respuesta; //}, // error => { // Mensaje ({ // mensaje: error.message, / / type: 'error', // duración: 2000 //}) // return Promise.reject (error) // devuelve el mensaje de error devuelto por la interfaz //})





















export function get (url, params = {}) { return new Promise ((resolver, rechazar) => { axios.get (url, { params: params }) .then (respuesta => { resolver (respuesta.data); }) .catch (err => { rechazar (err) }) }) }











export function post (url, data = {}) { return new Promise ((resolver, rechazar) => { axios.post (url, data). then (response => { resolve (response.data); }, err = > { rechazar (err) }) }) } función de exportación put (url, data = {}) { return new Promise ((resolver, rechazar) => { axios.put (url, data). then (response => { resolver (respuesta.datos) }, error => { rechazar (error) }) }) } // función http (método, url, datos = {}) { // dejar configData = {}; // deja type = method === 'get'? 'params': 'datos' // configData.method = método; // configData.url = url;























// configData [tipo] = datos;
// configData.headers = { // versiones: '1.0.0', // fuente: '' //} //} // return axios (configData) .catch (err => { // if (err.response .status === 500) return $ message.error ('服务器 错误') // if (err.response.status === 404) return $ message.error ('接口 不 存在') //})








Supongo que te gusta

Origin blog.csdn.net/qq_45424679/article/details/115296878
Recomendado
Clasificación