Pan лет назад: 7
Родитель
Сommit
822c59bdba
4 измененных файлов с 24 добавлено и 7 удалено
  1. 2 1
      src/main.js
  2. 5 5
      src/store/modules/user.js
  3. 15 0
      src/utils/auth.js
  4. 2 1
      src/utils/fetch.js

+ 2 - 1
src/main.js

@@ -11,6 +11,7 @@ import 'nprogress/nprogress.css'
11 11
 import 'normalize.css/normalize.css'
12 12
 import '@/assets/iconfont/iconfont'
13 13
 import IconSvg from '@/components/Icon-svg/index.vue'
14
+import { getToken } from '@/utils/auth'
14 15
 
15 16
 Vue.config.productionTip = false
16 17
 
@@ -20,7 +21,7 @@ Vue.component('icon-svg', IconSvg)
20 21
 const whiteList = ['/login'];
21 22
 router.beforeEach((to, from, next) => {
22 23
   NProgress.start();
23
-  if (store.getters.token) {
24
+  if (getToken()) {
24 25
     if (to.path === '/login') {
25 26
       next({ path: '/' });
26 27
     } else {

+ 5 - 5
src/store/modules/user.js

@@ -1,9 +1,9 @@
1 1
 import { login, logout, getInfo } from '@/api/login';
2
-import Cookies from 'js-cookie';
2
+import { getToken, setToken, removeToken } from '@/utils/auth';
3 3
 
4 4
 const user = {
5 5
   state: {
6
-    token: Cookies.get('Admin-Token'),
6
+    token: getToken(),
7 7
     name: '',
8 8
     avatar: '',
9 9
     roles: []
@@ -31,7 +31,7 @@ const user = {
31 31
       return new Promise((resolve, reject) => {
32 32
         login(email, userInfo.password).then(response => {
33 33
           const data = response.data;
34
-          Cookies.set('Admin-Token', data.token);
34
+          setToken(data.token);
35 35
           commit('SET_TOKEN', data.token);
36 36
           resolve();
37 37
         }).catch(error => {
@@ -62,7 +62,7 @@ const user = {
62 62
         logout(state.token).then(() => {
63 63
           commit('SET_TOKEN', '');
64 64
           commit('SET_ROLES', []);
65
-          Cookies.remove('Admin-Token');
65
+          removeToken();
66 66
           resolve();
67 67
         }).catch(error => {
68 68
           reject(error);
@@ -74,7 +74,7 @@ const user = {
74 74
     FedLogOut({ commit }) {
75 75
       return new Promise(resolve => {
76 76
         commit('SET_TOKEN', '');
77
-        Cookies.remove('Admin-Token');
77
+        removeToken();
78 78
         resolve();
79 79
       });
80 80
     }

+ 15 - 0
src/utils/auth.js

@@ -0,0 +1,15 @@
1
+import Cookies from 'js-cookie'
2
+
3
+const TokenKey = 'Admin-Token'
4
+
5
+export function getToken() {
6
+  return Cookies.get(TokenKey)
7
+}
8
+
9
+export function setToken(token) {
10
+  return Cookies.set(TokenKey, token)
11
+}
12
+
13
+export function removeToken() {
14
+  return Cookies.remove(TokenKey)
15
+}

+ 2 - 1
src/utils/fetch.js

@@ -1,6 +1,7 @@
1 1
 import axios from 'axios';
2 2
 import { Message } from 'element-ui';
3 3
 import store from '../store';
4
+import { getToken } from '@/utils/auth';
4 5
 
5 6
 
6 7
 // 创建axios实例
@@ -12,7 +13,7 @@ const service = axios.create({
12 13
 // request拦截器
13 14
 service.interceptors.request.use(config => {
14 15
   if (store.getters.token) {
15
-    config.headers['X-Token'] = store.getters.token; // 让每个请求携带自定义token 请根据实际情况自行修改
16
+    config.headers['X-Token'] = getToken(); // 让每个请求携带自定义token 请根据实际情况自行修改
16 17
   }
17 18
   return config;
18 19
 }, error => {