first commit
This commit is contained in:
14
mock/_createProdServer.js
Normal file
14
mock/_createProdServer.js
Normal file
@@ -0,0 +1,14 @@
|
||||
import { createProdMockServer } from 'vite-plugin-mock/es/createProdMockServer'
|
||||
|
||||
const modules = import.meta.globEager('./**/*.js')
|
||||
const mockModules = []
|
||||
Object.keys(modules).forEach((key) => {
|
||||
if (key.includes('/_')) {
|
||||
return
|
||||
}
|
||||
mockModules.push(...modules[key].default)
|
||||
})
|
||||
|
||||
export function setupProdMockServer() {
|
||||
createProdMockServer(mockModules)
|
||||
}
|
12
mock/_utils.js
Normal file
12
mock/_utils.js
Normal file
@@ -0,0 +1,12 @@
|
||||
export function resolveToken(authorization) {
|
||||
/**
|
||||
* * jwt token
|
||||
* * Bearer + token
|
||||
* ! 认证方案: Bearer
|
||||
*/
|
||||
const reqTokenSplit = authorization.split(' ')
|
||||
if (reqTokenSplit.length === 2) {
|
||||
return reqTokenSplit[1]
|
||||
}
|
||||
return ''
|
||||
}
|
40
mock/auth/index.js
Normal file
40
mock/auth/index.js
Normal file
@@ -0,0 +1,40 @@
|
||||
import { resolveToken } from '../_utils'
|
||||
|
||||
const token = {
|
||||
admin: 'admin',
|
||||
editor: 'editor',
|
||||
}
|
||||
|
||||
export default [
|
||||
{
|
||||
url: '/api-mock/auth/login',
|
||||
method: 'post',
|
||||
response: ({ body }) => {
|
||||
if (['admin', 'editor'].includes(body?.name)) {
|
||||
return {
|
||||
code: 0,
|
||||
data: {
|
||||
token: token[body.name],
|
||||
},
|
||||
}
|
||||
} else {
|
||||
return {
|
||||
code: -1,
|
||||
message: '没有此用户',
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
url: '/api-mock/auth/refreshToken',
|
||||
method: 'post',
|
||||
response: ({ headers }) => {
|
||||
return {
|
||||
code: 0,
|
||||
data: {
|
||||
token: resolveToken(headers?.authorization),
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
]
|
39
mock/user/index.js
Normal file
39
mock/user/index.js
Normal file
@@ -0,0 +1,39 @@
|
||||
import { resolveToken } from '../_utils'
|
||||
|
||||
const users = {
|
||||
admin: {
|
||||
id: 1,
|
||||
name: '大脸怪(admin)',
|
||||
avatar: 'https://gitee.com/zclzone/res/raw/master/qs-zone/blob/img/lADPDiQ3QDTwsz3NAarNAaw_428_426.jpg',
|
||||
email: 'Ronnie@123.com',
|
||||
role: ['admin'],
|
||||
},
|
||||
editor: {
|
||||
id: 2,
|
||||
name: '大脸怪(editor)',
|
||||
avatar: 'https://gitee.com/zclzone/res/raw/master/qs-zone/blob/img/lADPDiQ3QDTwsz3NAarNAaw_428_426.jpg',
|
||||
email: 'Ronnie@123.com',
|
||||
role: ['editor'],
|
||||
},
|
||||
guest: {
|
||||
id: 3,
|
||||
name: '访客(guest)',
|
||||
avatar: 'https://gitee.com/zclzone/res/raw/master/qs-zone/blob/img/lADPDiQ3QDTwsz3NAarNAaw_428_426.jpg',
|
||||
role: [],
|
||||
},
|
||||
}
|
||||
export default [
|
||||
{
|
||||
url: '/api-mock/user',
|
||||
method: 'get',
|
||||
response: ({ headers }) => {
|
||||
const token = resolveToken(headers?.authorization)
|
||||
return {
|
||||
code: 0,
|
||||
data: {
|
||||
...(users[token] || users.guest),
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
]
|
Reference in New Issue
Block a user