Explorar o código

:recycle: Refactoring code. #1054 【重构】 登录流程简化,减少DB 访问

:recycle: Refactoring code.  #1054 【重构】 登录流程简化,减少DB 访问

:recycle: Refactoring code.  #1054 【重构】 登录流程简化,减少DB 访问

:recycle: Refactoring code.  #1054 【重构】 登录流程简化,减少DB 访问
冷冷 %!s(int64=5) %!d(string=hai) anos
pai
achega
9c872a2fb5
Modificáronse 3 ficheiros con 18 adicións e 42 borrados
  1. 0 7
      src/api/login.js
  2. 10 20
      src/permission.js
  3. 8 15
      src/store/modules/user.js

+ 0 - 7
src/api/login.js

@@ -76,13 +76,6 @@ export const loginBySocial = (state, code) => {
   })
 }
 
-export const getUserInfo = () => {
-  return request({
-    url: '/admin/user/info',
-    method: 'get'
-  })
-}
-
 export const logout = () => {
   return request({
     url: '/auth/token/logout',

+ 10 - 20
src/permission.js

@@ -30,28 +30,18 @@ router.beforeEach((to, from, next) => {
     } else if (to.path === '/login') {
       next({ path: '/' })
     } else {
-      if (store.getters.roles.length === 0) {
-        store.dispatch('GetUserInfo').then(() => {
-          next()
-        }).catch(() => {
-          store.dispatch('FedLogOut').then(() => {
-            next({ path: '/login' })
-          })
+      const value = to.query.src || to.fullPath
+      const label = to.query.name || to.name
+      if (meta.isTab !== false && !validatenull(value) && !validatenull(label)) {
+        store.commit('ADD_TAG', {
+          label: label,
+          value: value,
+          params: to.params,
+          query: to.query,
+          group: router.$avueRouter.group || []
         })
-      } else {
-        const value = to.query.src || to.fullPath
-        const label = to.query.name || to.name
-        if (meta.isTab !== false && !validatenull(value) && !validatenull(label)) {
-          store.commit('ADD_TAG', {
-            label: label,
-            value: value,
-            params: to.params,
-            query: to.query,
-            group: router.$avueRouter.group || []
-          })
-        }
-        next()
       }
+      next()
     }
   } else {
     if (meta.isAuth === false) {

+ 8 - 15
src/store/modules/user.js

@@ -1,6 +1,6 @@
 import {getStore, setStore} from '@/util/store'
 import {isURL, validatenull} from '@/util/validate'
-import {getUserInfo, loginByMobile, loginBySocial, loginByUsername, logout, refreshToken} from '@/api/login'
+import {loginByMobile, loginBySocial, loginByUsername, logout, refreshToken} from '@/api/login'
 import {deepClone, encryption} from '@/util/util'
 import webiste from '@/const/website'
 import {resetRouter} from '@/router/router'
@@ -61,6 +61,8 @@ const user = {
           commit('SET_ACCESS_TOKEN', data.access_token)
           commit('SET_REFRESH_TOKEN', data.refresh_token)
           commit('SET_EXPIRES_IN', data.expires_in)
+          commit('SET_USER_INFO', data.user_info)
+          commit('SET_PERMISSIONS', data.user_info.authorities || [])
           commit('CLEAR_LOCK')
           resolve()
         }).catch(error => {
@@ -76,6 +78,8 @@ const user = {
           commit('SET_ACCESS_TOKEN', data.access_token)
           commit('SET_REFRESH_TOKEN', data.refresh_token)
           commit('SET_EXPIRES_IN', data.expires_in)
+          commit('SET_USER_INFO', data.user_info)
+          commit('SET_PERMISSIONS', data.user_info.authorities || [])
           commit('CLEAR_LOCK')
           resolve()
         }).catch(error => {
@@ -91,6 +95,8 @@ const user = {
           commit('SET_ACCESS_TOKEN', data.access_token)
           commit('SET_REFRESH_TOKEN', data.refresh_token)
           commit('SET_EXPIRES_IN', data.expires_in)
+          commit('SET_USER_INFO', data.user_info)
+          commit('SET_PERMISSIONS', data.user_info.authorities || [])
           commit('CLEAR_LOCK')
           resolve()
         }).catch(error => {
@@ -98,19 +104,6 @@ const user = {
         })
       })
     },
-    GetUserInfo({commit}) {
-      return new Promise((resolve, reject) => {
-        getUserInfo().then((res) => {
-          const data = res.data.data || {}
-          commit('SET_USER_INFO', data.sysUser)
-          commit('SET_ROLES', data.roles || [])
-          commit('SET_PERMISSIONS', data.permissions || [])
-          resolve(data)
-        }).catch(() => {
-          reject()
-        })
-      })
-    },
     // 刷新token
     RefreshToken({commit, state}) {
       return new Promise((resolve, reject) => {
@@ -232,7 +225,7 @@ const user = {
     SET_PERMISSIONS: (state, permissions) => {
       const list = {}
       for (let i = 0; i < permissions.length; i++) {
-        list[permissions[i]] = true
+        list[permissions[i].authority] = true
       }
       state.permissions = list
     }