64 lines
2.0 KiB
JavaScript
64 lines
2.0 KiB
JavaScript
import { api } from '@/common/api'
|
|
import { token } from '@/common/token'
|
|
import { encryptByDES, decryptByDES } from '@/util/des'
|
|
import { encryptByRSA } from '@/util/rsa'
|
|
import { removeGlobal, RSA_PUBLIC_KEY } from '@/util/global'
|
|
import app from '@/main'
|
|
|
|
const doLogin = (args) => {
|
|
return new Promise((resolve, reject) => {
|
|
let { account, password } = args
|
|
password = encryptByRSA(password, RSA_PUBLIC_KEY)
|
|
api.login({ account, password }).then(({ success, data, message }) => {
|
|
if (success) {
|
|
token.value = data
|
|
app.$message.success('登录成功')
|
|
if (app.$route.query.return) {
|
|
const r = decryptByDES(app.$route.query.return)
|
|
app.$router.replace(r)
|
|
} else {
|
|
app.$router.replace('/')
|
|
}
|
|
resolve()
|
|
} else {
|
|
app.$message.error(message)
|
|
reject()
|
|
}
|
|
}).catch(({ message }) => {
|
|
if (typeof message === 'object' && message[0]) {
|
|
app.$message.error(message[0].messages[0])
|
|
}
|
|
reject()
|
|
})
|
|
})
|
|
}
|
|
|
|
const doLogout = () => {
|
|
return new Promise((resolve, reject) => {
|
|
api.logout().then(({ success, message }) => {
|
|
if (success) {
|
|
removeGlobal()
|
|
token.value = ''
|
|
if (app.$route.path === '/') {
|
|
app.$router.replace('/login')
|
|
} else {
|
|
app.$router.replace({
|
|
path: '/login',
|
|
query: {
|
|
return: decodeURIComponent(encryptByDES(app.$route.path))
|
|
}
|
|
})
|
|
}
|
|
resolve()
|
|
} else {
|
|
app.$message.error(message)
|
|
reject()
|
|
}
|
|
})
|
|
})
|
|
}
|
|
|
|
export {
|
|
doLogin,
|
|
doLogout,
|
|
} |