Browse Source

fix cookie token bug

Pan 7 years ago
parent
commit
822c59bdba
4 changed files with 24 additions and 7 deletions
  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
 import 'normalize.css/normalize.css'
11
 import 'normalize.css/normalize.css'
12
 import '@/assets/iconfont/iconfont'
12
 import '@/assets/iconfont/iconfont'
13
 import IconSvg from '@/components/Icon-svg/index.vue'
13
 import IconSvg from '@/components/Icon-svg/index.vue'
14
+import { getToken } from '@/utils/auth'
14
 
15
 
15
 Vue.config.productionTip = false
16
 Vue.config.productionTip = false
16
 
17
 
20
 const whiteList = ['/login'];
21
 const whiteList = ['/login'];
21
 router.beforeEach((to, from, next) => {
22
 router.beforeEach((to, from, next) => {
22
   NProgress.start();
23
   NProgress.start();
23
-  if (store.getters.token) {
24
+  if (getToken()) {
24
     if (to.path === '/login') {
25
     if (to.path === '/login') {
25
       next({ path: '/' });
26
       next({ path: '/' });
26
     } else {
27
     } else {

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

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

+ 15 - 0
src/utils/auth.js

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