You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.5 KiB
96 lines
2.5 KiB
6 months ago
|
import type { MockConfig, MockMethod } from 'vite-plugin-mock';
|
||
|
|
||
|
import { getRequestToken, resultError, resultSuccess } from '/nerv-base/util/mock';
|
||
|
|
||
|
const fakeUserList = [
|
||
|
{
|
||
|
userId: '1',
|
||
|
username: 'vben',
|
||
|
realName: 'Vben Admin',
|
||
|
avatar: '',
|
||
|
desc: 'manager',
|
||
|
password: '123456',
|
||
|
accessToken: 'fakeAdminToken',
|
||
|
homePath: '/dashboard',
|
||
|
roles: [
|
||
|
{
|
||
|
roleName: 'Super Admin',
|
||
|
value: 'super',
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
{
|
||
|
userId: '2',
|
||
|
username: 'test',
|
||
|
password: '123456',
|
||
|
realName: 'test user',
|
||
|
avatar: '',
|
||
|
desc: 'tester',
|
||
|
accessToken: 'fakeTestToken',
|
||
|
homePath: '/dashboard/workbench',
|
||
|
roles: [
|
||
|
{
|
||
|
roleName: 'Tester',
|
||
|
value: 'test',
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
];
|
||
|
|
||
|
export default (_config: MockConfig): MockMethod[] => {
|
||
|
return [
|
||
|
{
|
||
|
url: '/req-api/login',
|
||
|
timeout: 200,
|
||
|
method: 'post',
|
||
|
response: ({ body }) => {
|
||
|
const { username, password } = body;
|
||
|
const checkUser = fakeUserList.find(
|
||
|
(item) => item.username === username && password === item.password,
|
||
|
);
|
||
|
if (!checkUser) {
|
||
|
return resultError('Incorrect account or password!');
|
||
|
}
|
||
|
const { userId, username: _username, accessToken, realName, desc, roles } = checkUser;
|
||
|
return resultSuccess({
|
||
|
roles,
|
||
|
userId,
|
||
|
username: _username,
|
||
|
accessToken,
|
||
|
realName,
|
||
|
desc,
|
||
|
});
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
url: '/req-api/getUserInfo',
|
||
|
method: 'get',
|
||
|
timeout: 100,
|
||
|
response: (request) => {
|
||
|
const token = getRequestToken(request) || 'fakeAdminToken';
|
||
|
if (!token) return resultError('Invalid token');
|
||
|
const checkUser = fakeUserList.find((item) => item.accessToken === token);
|
||
|
if (!checkUser) {
|
||
|
return resultError('The corresponding user information was not obtained!');
|
||
|
}
|
||
|
const { accessToken: _token, password: _pwd, ...rest } = checkUser;
|
||
|
return resultSuccess(rest);
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
url: '/req-api/logout',
|
||
|
timeout: 200,
|
||
|
method: 'get',
|
||
|
response: (request) => {
|
||
|
const token = getRequestToken(request);
|
||
|
if (!token) return resultError('Invalid token');
|
||
|
const checkUser = fakeUserList.find((item) => item.accessToken === token);
|
||
|
if (!checkUser) {
|
||
|
return resultError('Invalid token!');
|
||
|
}
|
||
|
return resultSuccess(undefined, { message: 'Token has been destroyed' });
|
||
|
},
|
||
|
},
|
||
|
];
|
||
|
};
|