lrf402788946 5 years ago
parent
commit
fe95595a8f
2 changed files with 46 additions and 32 deletions
  1. 19 5
      store/login.js
  2. 27 27
      store/user/mutations.js

+ 19 - 5
store/login.js

@@ -5,7 +5,8 @@ import { Notification } from 'element-ui';
 const jwt = require('jsonwebtoken');
 Vue.use(Vuex);
 const api = {
-  interface: `/api/market/user/login`,
+  interface: `/api/auth/login`,
+  getUser: `/api/auth/token`,
   updatePassword: '/api/user/pwd_edit',
 };
 const state = () => ({});
@@ -21,17 +22,17 @@ const actions = {
     isWx: Boolean 是否是微信登陆
     needNotice:Boolean 是否需要提示
    */
-  async login({ commit }, { user, router, path = '/', needReturn = false, typeCheck = false, isWx = false, needNotice = true }) {
+  async login({ commit, dispatch }, { user, router, path = '/', needReturn = false, typeCheck = false, isWx = false, needNotice = true }) {
     let res;
     //wx登陆,openid存在,user中是openid和qrcode;正常登陆,user中是mobile和passwd
     if (isWx) res = await this.$axios.$post(`${api.wxLogin}`, user);
     else res = await this.$axios.$post(`${api.interface}`, user);
     const setUser = (token, commit) => {
       localStorage.setItem('token', token);
-      commit('setUser', token, { root: true });
+      dispatch('toGetUser');
     };
     if (res.errcode == '0') {
-      setUser(res.data, commit);
+      setUser(res.data.key, commit);
       // Notification({
       //   title: '登录成功',
       //   message: `欢迎,${user.user_name}`,
@@ -50,8 +51,21 @@ const actions = {
       }
     }
   },
+  async toGetUser({ commit }, payload) {
+    let key = localStorage.getItem('token');
+    if (!key) {
+      console.log('游客身份');
+    }
+    let res = await this.$axios.$post(api.getUser, { key: key });
+    if (res.errcode == '0') {
+      let user = jwt.decode(res.data.token);
+      commit('setUser', user, { root: true });
+    }
+  },
   async update({ commit }, payload) {
-    let res = await this.$axios.$post(`${api.updatePassword}`, { data: payload });
+    let res = await this.$axios.$post(`${api.updatePassword}`, {
+      data: payload,
+    });
     return res;
   },
   async bind({ commit }, payload) {

+ 27 - 27
store/user/mutations.js

@@ -1,33 +1,33 @@
-const jwt = require('jsonwebtoken');
 export const setUser = (state, payload) => {
-  let res = true;
-  //登陆时
-  if (payload) {
-    state.token = payload;
-  } else {
-    //已经登陆,切换路由时取出用户信息放在总store中
-    let token = localStorage.getItem('token');
-    if (token && token !== 'guest') {
-      state.user = jwt.decode(token);
-    } else if (token && token == 'guest') {
-      let user = localStorage.getItem('user');
-      state.user = JSON.parse(user);
-    } else {
-      let timestamp = new Date().getTime();
-      let user = {
-        // id: `guest${timestamp}`,
-        name: `游客${timestamp}`,
-      };
-      state.user = user;
-      localStorage.setItem('token', 'guest');
-      localStorage.setItem('user', JSON.stringify(user));
-      console.warn('游客身份');
-    }
-  }
-  return res;
+  state.user = payload;
+  // let res = true;
+  // //登陆时
+  // if (payload) {
+  //   state.token = payload;
+  // } else {
+  //   //已经登陆,切换路由时取出用户信息放在总store中
+  //   let token = localStorage.getItem('token');
+  //   if (token && token !== 'guest') {
+  //     state.user = jwt.decode(token);
+  //   } else if (token && token == 'guest') {
+  //     let user = localStorage.getItem('user');
+  //     state.user = JSON.parse(user);
+  //   } else {
+  //     let timestamp = new Date().getTime();
+  //     let user = {
+  //       // id: `guest${timestamp}`,
+  //       name: `游客${timestamp}`,
+  //     };
+  //     state.user = user;
+  //     localStorage.setItem('token', 'guest');
+  //     localStorage.setItem('user', JSON.stringify(user));
+  //     console.warn('游客身份');
+  //   }
+  // }
+  // return res;
 };
 
 export const deleteUser = (state, payload) => {
   state.user = {};
-  localStorage.removeItem('user');
+  localStorage.removeItem('token');
 };