主要变更: - 将独立的 web-finance 应用整合到 web-antd 主应用中 - 重命名 backend-mock 为 backend,增强后端功能 - 新增财务模块 API 端点(账户、预算、类别、交易) - 增强财务仪表板和报表功能 - 添加 SQLite 数据存储支持和财务数据导入脚本 - 优化路由结构,删除冗余的 finance-system 模块 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
37 lines
995 B
TypeScript
37 lines
995 B
TypeScript
import {
|
|
clearRefreshTokenCookie,
|
|
setRefreshTokenCookie,
|
|
} from '~/utils/cookie-utils';
|
|
import { generateAccessToken, generateRefreshToken } from '~/utils/jwt-utils';
|
|
import { forbiddenResponse } from '~/utils/response';
|
|
|
|
export default defineEventHandler(async (event) => {
|
|
const { password, username } = await readBody(event);
|
|
if (!password || !username) {
|
|
setResponseStatus(event, 400);
|
|
return useResponseError(
|
|
'BadRequestException',
|
|
'Username and password are required',
|
|
);
|
|
}
|
|
|
|
const findUser = MOCK_USERS.find(
|
|
(item) => item.username === username && item.password === password,
|
|
);
|
|
|
|
if (!findUser) {
|
|
clearRefreshTokenCookie(event);
|
|
return forbiddenResponse(event, 'Username or password is incorrect.');
|
|
}
|
|
|
|
const accessToken = generateAccessToken(findUser);
|
|
const refreshToken = generateRefreshToken(findUser);
|
|
|
|
setRefreshTokenCookie(event, refreshToken);
|
|
|
|
return useResponseSuccess({
|
|
...findUser,
|
|
accessToken,
|
|
});
|
|
});
|