Skip to content

Commit 47b24ca

Browse files
committed
refine login
1 parent e0695d4 commit 47b24ca

File tree

10 files changed

+104
-36
lines changed

10 files changed

+104
-36
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
"eslint-config-airbnb-base": "11.0.1",
5353
"eslint-friendly-formatter": "2.0.7",
5454
"eslint-import-resolver-webpack": "0.8.1",
55-
"eslint-loader": "1.6.1",
55+
"eslint-loader": "1.6.3",
5656
"eslint-plugin-html": "2.0.0",
5757
"eslint-plugin-import": "2.2.0",
5858
"eventsource-polyfill": "0.9.6",

src/api/login.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
import { fetch } from 'utils/fetch';
2+
3+
export function loginByEmail(email, password) {
4+
const data = {
5+
email,
6+
password
7+
};
8+
return fetch({
9+
url: '/login/loginbyemail',
10+
method: 'post',
11+
params: data
12+
});
13+
}
14+
15+
export function logout() {
16+
return fetch({
17+
url: '/login/logout',
18+
method: 'post'
19+
});
20+
}
21+
22+
23+
export function getInfo(token) {
24+
return fetch({
25+
url: '/user/info',
26+
method: 'get',
27+
params: { token }
28+
});
29+
}
30+

src/main.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ router.beforeEach((to, from, next) => {
4949
if (to.path === '/login') {
5050
next({ path: '/' });
5151
} else {
52-
console.log('a')
5352
if (to.meta && to.meta.role) {
5453
if (hasPermission(store.getters.roles, to.meta.role)) {
5554
next();

src/mock/index.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,25 @@
11
import axios from 'axios';
22
import MockAdapter from 'axios-mock-adapter';
3+
import loginAPI from './login';
34
import articleAPI from './article';
45
import article_tableAPI from './article_table';
56
import remoteSearchAPI from './remoteSearch';
67
const mock = new MockAdapter(axios);
78

9+
// 登录相关
10+
mock.onPost('/login/loginbyemail').reply(loginAPI.loginByEmail);
11+
mock.onPost('/login/logout').reply(loginAPI.logout);
12+
mock.onGet('/user/info').reply(loginAPI.getInfo);
813

14+
// 文章相关
915
mock.onGet('/article/list').reply(articleAPI.getList);
1016
mock.onGet('/article/detail').reply(articleAPI.getArticle);
1117

18+
// table example相关
1219
mock.onGet('/article_table/list').reply(article_tableAPI.getList);
1320
mock.onGet('/article_table/pv').reply(article_tableAPI.getPv);
1421

15-
22+
// 搜索相关
1623
mock.onGet('/search/user').reply(remoteSearchAPI.searchUser);
1724

1825

src/mock/login.js

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,32 @@ const userMap = {
2222
name: '工程师小王'
2323
}
2424
}
25-
export default userMap
25+
26+
export default {
27+
loginByEmail: config => {
28+
const { email } = config.params;
29+
return new Promise(resolve => {
30+
setTimeout(() => {
31+
resolve([200, {
32+
data: userMap[email.split('@')[0]]
33+
}]);
34+
}, 500);
35+
})
36+
},
37+
getInfo: config => {
38+
const { token } = config.params;
39+
console.log(userMap[token])
40+
return new Promise(resolve => {
41+
setTimeout(() => {
42+
resolve([200, {
43+
data: userMap[token]
44+
}]);
45+
}, 100);
46+
})
47+
},
48+
logout: () => new Promise(resolve => {
49+
setTimeout(() => {
50+
resolve([200, { data: 'success' }]);
51+
}, 100);
52+
})
53+
};

src/store/modules/user.js

Lines changed: 33 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
// import { loginByEmail, loginByThirdparty } from 'api/login';
2-
// import { userInfo, userLogout } from 'api/adminUser';
1+
import { loginByEmail, logout, getInfo } from 'api/login';
32
import Cookies from 'js-cookie';
4-
import userMap from 'mock/login';
53

64
const user = {
75
state: {
@@ -64,21 +62,39 @@ const user = {
6462
},
6563

6664
actions: {
67-
// 邮箱登录
65+
// 邮箱登录
6866
LoginByEmail({ commit }, userInfo) {
6967
return new Promise((resolve, reject) => {
70-
const email = userInfo.email.split('@')[0];
71-
if (userMap[email]) {
72-
commit('SET_ROLES', userMap[email].role);
73-
commit('SET_TOKEN', userMap[email].token);
74-
Cookies.set('X-Ivanka-Token', userMap[email].token);
68+
loginByEmail(userInfo.email, userInfo.password).then(response => {
69+
const data = response.data;
70+
Cookies.set('X-Ivanka-Token', response.data.token);
71+
commit('SET_TOKEN', data.token);
72+
commit('SET_EMAIL', userInfo.email);
7573
resolve();
76-
} else {
77-
reject('账号不正确');
78-
}
74+
}).catch(error => {
75+
reject(error);
76+
});
7977
});
8078
},
81-
// 第三方验证登录
79+
80+
81+
// 获取用户信息
82+
GetInfo({ commit, state }) {
83+
return new Promise((resolve, reject) => {
84+
getInfo(state.token).then(response => {
85+
const data = response.data;
86+
commit('SET_ROLES', data.role);
87+
commit('SET_NAME', data.name);
88+
commit('SET_AVATAR', data.avatar);
89+
commit('SET_INTRODUCTION', data.introduction);
90+
resolve(response);
91+
}).catch(error => {
92+
reject(error);
93+
});
94+
});
95+
},
96+
97+
// 第三方验证登录
8298
LoginByThirdparty({ commit, state }, code) {
8399
return new Promise((resolve, reject) => {
84100
commit('SET_CODE', code);
@@ -91,21 +107,12 @@ const user = {
91107
});
92108
});
93109
},
94-
// 获取用户信息
95-
GetInfo({ commit, state }) {
96-
return new Promise(resolve => {
97-
const token = state.token;
98-
commit('SET_ROLES', userMap[token].role);
99-
commit('SET_NAME', userMap[token].name);
100-
commit('SET_AVATAR', userMap[token].avatar);
101-
commit('SET_INTRODUCTION', userMap[token].introduction);
102-
resolve();
103-
});
104-
},
105-
// 登出
110+
111+
112+
// 登出
106113
LogOut({ commit, state }) {
107114
return new Promise((resolve, reject) => {
108-
userLogout(state.token).then(() => {
115+
logout(state.token).then(() => {
109116
commit('SET_TOKEN', '');
110117
Cookies.remove('X-Ivanka-Token');
111118
resolve();

src/views/dashboard/editor/index.vue

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,6 @@
121121
methods: {
122122
fetchData() {
123123
getList(this.listQuery).then(response => {
124-
console.log(response.data)
125124
this.list = response.data;
126125
})
127126
}

src/views/layout/Layout.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,12 @@
3030
}
3131
},
3232
beforeRouteEnter: (to, from, next) => {
33-
console.log('b')
3433
const roles = store.getters.roles;
3534
if (roles.length !== 0) {
3635
next();
3736
return
3837
}
38+
3939
// loadingInstance = Loading.service({ fullscreen: true, text: '玩命加载中' });
4040
store.dispatch('GetInfo').then(() => {
4141
permission.init({

src/views/layout/Sidebar.vue

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727

2828
<script>
2929
import permissionRoutes from 'store/permission';
30-
3130
export default {
3231
name: 'Sidebar',
3332
data() {

src/views/login/index.vue

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,10 @@
6161
},
6262
loginRules: {
6363
email: [
64-
{ required: true, trigger: 'blur', validator: validateEmail }
64+
{ required: true, trigger: 'blur', validator: validateEmail }
6565
],
6666
password: [
67-
{ required: true, trigger: 'blur', validator: validatePass }
67+
{ required: true, trigger: 'blur', validator: validatePass }
6868
]
6969
},
7070
loading: false,
@@ -73,7 +73,6 @@
7373
},
7474
computed: {
7575
...mapGetters([
76-
'status',
7776
'auth_type'
7877
])
7978
},

0 commit comments

Comments
 (0)