import { defineMock } from '@alova/mock'; import { join, random, sampleSize } from 'lodash-es'; import multiavatar from '@multiavatar/multiavatar'; import { createMock } from '@/mock/utils'; import { ResultEnum } from '@/enums/httpEnum'; import { getRandomChsString } from '@/utils/character'; function createRandomToken(len = 36 * 6) { const token = join(sampleSize('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._-', len), ''); return `eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.${token}`; } export const authMocks = defineMock({ // 登录 '[POST]/api/login': (params) => { const { email, password } = params.data; if (email === 'uni-app@test.com' && (password === 'Vue3_Ts_Vite' || password === '123456')) { const token = createRandomToken(); return createMock({ data: { token } }); } return createMock({ data: [], code: ResultEnum.FAIL, message: '邮箱或密码错误' }); }, // 获取用户信息 '[GET]/api/users': () => { const generateNicknames = getRandomChsString(random(2, 6)); const svgCode = multiavatar(generateNicknames); const base64SVG = `data:image/svg+xml;charset=utf-8,${encodeURIComponent( svgCode, )}`; return createMock({ data: { id: 1, nickname: generateNicknames, avatar: base64SVG, email: 'uni-app@test.com', }, }); }, });