89 lines
1.7 KiB
JavaScript
89 lines
1.7 KiB
JavaScript
|
||
const tokens = {
|
||
admin: {
|
||
token: 'admin-token'
|
||
},
|
||
editor: {
|
||
token: 'editor-token'
|
||
}
|
||
}
|
||
|
||
const users = {
|
||
'admin-token': {
|
||
roles: ['admin'],
|
||
introduction: 'I am a super administrator',
|
||
avatar: 'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png',
|
||
name: 'Super Admin'
|
||
},
|
||
'editor-token': {
|
||
roles: ['editor'],
|
||
introduction: 'I am an editor',
|
||
avatar: 'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png',
|
||
name: 'Normal Editor'
|
||
}
|
||
}
|
||
|
||
export default [
|
||
// user login
|
||
{
|
||
url: '/user/login',
|
||
type: 'get',
|
||
response: config => {
|
||
const { username } = config.query
|
||
const token = tokens[username]
|
||
// mock error
|
||
if (!token) {
|
||
return {
|
||
code: 60204,
|
||
message: 'Account and password are incorrect.'
|
||
}
|
||
}
|
||
|
||
return {
|
||
code: 20000,
|
||
data: token
|
||
}
|
||
}
|
||
},
|
||
|
||
// get user info
|
||
{
|
||
url: '/user/info\.*',
|
||
type: 'get',
|
||
response: config => {
|
||
const auth = require('../src/utils/auth')
|
||
let token
|
||
// 兼容生产环境上mockjs无法获取headers数据,采用直接读取本地cookie值
|
||
if (process.env.NODE_ENV === 'production') {
|
||
token = auth.getToken()
|
||
} else {
|
||
token = config.headers[process.env.VUE_APP_TOKEN_KEY]
|
||
}
|
||
const info = users[token]
|
||
// mock error
|
||
if (!info) {
|
||
return {
|
||
code: 50008,
|
||
message: 'Login failed, unable to get user details.'
|
||
}
|
||
}
|
||
return {
|
||
code: 20000,
|
||
data: info
|
||
}
|
||
}
|
||
},
|
||
|
||
// user logout
|
||
{
|
||
url: '/user/logout',
|
||
type: 'post',
|
||
response: _ => {
|
||
return {
|
||
code: 20000,
|
||
data: 'success'
|
||
}
|
||
}
|
||
}
|
||
]
|