Skip to content

Commit 24a24b8

Browse files
committed
fix(view): 登录功能实现
1 parent 6c4fa63 commit 24a24b8

File tree

4 files changed

+77
-23
lines changed

4 files changed

+77
-23
lines changed

admin/src/store/modules/user.js

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -21,49 +21,48 @@ const mutations = {
2121
}
2222

2323
const actions = {
24-
// user login
24+
// 登录
2525
login({ commit }, userInfo) {
26-
const { username, password } = userInfo
26+
// const username = userInfo.username.trim()
2727
return new Promise((resolve, reject) => {
28-
login({ username: username.trim(), password: password }).then(response => {
29-
const { data } = response
30-
commit('SET_TOKEN', data.token)
31-
setToken(data.token)
28+
login(userInfo).then(response => {
29+
const data = response.data
30+
setToken(data.access_token)
31+
commit('SET_TOKEN', data.access_token)
3232
resolve()
3333
}).catch(error => {
3434
reject(error)
3535
})
3636
})
3737
},
3838

39-
// get user info
39+
// 获取用户信息
4040
getInfo({ commit, state }) {
4141
return new Promise((resolve, reject) => {
4242
getInfo(state.token).then(response => {
43-
const { data } = response
44-
45-
if (!data) {
46-
reject('Verification failed, please Login again.')
43+
const data = response.data
44+
if (data.roles && data.roles.length > 0) { // 验证返回的roles是否是一个非空数组
45+
commit('SET_ROLES', data.roles)
46+
} else {
47+
reject('getInfo: roles must be a non-null array !')
4748
}
48-
49-
const { name, avatar } = data
50-
51-
commit('SET_NAME', name)
52-
commit('SET_AVATAR', avatar)
53-
resolve(data)
49+
commit('SET_NAME', data.name)
50+
commit('SET_AVATAR', data.avatar)
51+
resolve(response)
5452
}).catch(error => {
5553
reject(error)
5654
})
5755
})
5856
},
5957

60-
// user logout
58+
// 登出
6159
logout({ commit, state }) {
6260
return new Promise((resolve, reject) => {
6361
logout(state.token).then(() => {
6462
commit('SET_TOKEN', '')
63+
commit('SET_ROLES', [])
6564
removeToken()
66-
resetRouter()
65+
sessionStorage.setItem('roles', '')
6766
resolve()
6867
}).catch(error => {
6968
reject(error)
@@ -78,6 +77,25 @@ const actions = {
7877
removeToken()
7978
resolve()
8079
})
80+
},
81+
82+
// 前端 登出
83+
FedLogOut({ commit }) {
84+
return new Promise(resolve => {
85+
commit('SET_TOKEN', '')
86+
removeToken()
87+
resolve()
88+
})
89+
},
90+
91+
GenerateRoutes({ commit }, data) {
92+
return new Promise(resolve => {
93+
commit('SET_ROUTERS', data.routers)
94+
95+
// 存储 sessionStorage
96+
sessionStorage.setItem('roles', JSON.stringify(data.roles))
97+
resolve()
98+
})
8199
}
82100
}
83101

admin/src/utils/request.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,10 @@ service.interceptors.response.use(
4545
response => {
4646
const res = response.data
4747

48-
// if the custom code is not 20000, it is judged as an error.
49-
if (res.code !== 20000) {
48+
/**
49+
* code 为非 200 是抛错 可结合自己业务进行修改
50+
*/
51+
if (res.code !== 200) {
5052
Message({
5153
message: res.message || 'Error',
5254
type: 'error',
@@ -70,7 +72,7 @@ service.interceptors.response.use(
7072
})
7173
})
7274
}
73-
return Promise.reject(new Error(res.message || 'Error'))
75+
return Promise.reject(new Error(res.reason || 'Error'))
7476
} else {
7577
return res
7678
}

admin/src/utils/validate.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,37 @@ export function validUsername(str) {
1818
const valid_map = ['admin', 'editor']
1919
return valid_map.indexOf(str.trim()) >= 0
2020
}
21+
22+
/**
23+
* Created by jiachenpan on 16/11/18.
24+
*/
25+
26+
export function isvalidUsername(str) {
27+
return true
28+
// const valid_map = ['admin', 'editor']
29+
// return valid_map.indexOf(str.trim()) >= 0
30+
}
31+
32+
/* 合法uri*/
33+
export function validateURL(textval) {
34+
const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/
35+
return urlregex.test(textval)
36+
}
37+
38+
/* 小写字母*/
39+
export function validateLowerCase(str) {
40+
const reg = /^[a-z]+$/
41+
return reg.test(str)
42+
}
43+
44+
/* 大写字母*/
45+
export function validateUpperCase(str) {
46+
const reg = /^[A-Z]+$/
47+
return reg.test(str)
48+
}
49+
50+
/* 大小写字母*/
51+
export function validatAlphabets(str) {
52+
const reg = /^[A-Za-z]+$/
53+
return reg.test(str)
54+
}

admin/src/views/login/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ export default {
111111
let params = this.mergeJsonObject(this.loginForm, { uuid: this.uuidData })
112112
params = this.mergeJsonObject(params, this.gtCapValid)
113113
114-
this.$store.dispatch('Login', params).then(() => {
114+
this.$store.dispatch('user/login', params).then(() => {
115115
this.loading = false
116116
this.$router.push({ path: this.redirect || '/' })
117117
}).catch(() => {

0 commit comments

Comments
 (0)