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' } } } ]