integration/mock/user.js

89 lines
1.7 KiB
JavaScript
Raw Permalink Normal View History

2025-12-27 16:44:06 +08:00
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'
}
}
}
]