Files
chuanqi-qycq-web/module/server/koa/login.js
Kubbo 293fbd8bc8 feat(server): 添加认证授权和日志记录功能
- 实现了 JWT 认证中间件,支持 token 验证和白名单路由
- 添加了登录接口,支持用户登录和 token 生成
- 集成了 log4js 日志系统,支持 mysql 和 koa 日志分类
- 配置了环境变量支持,添加了 SECRET_KEY 配置
- 重构了 MySQL 连接池配置,添加了查询日志记录
- 集成了 koa 路由和认证中间件,实现接口访问控制
2025-12-24 23:48:14 +08:00

25 lines
916 B
JavaScript

import Router from 'koa-router';
import mysql from "../mysql/index.js";
import jwt from "jsonwebtoken";
import * as log4js from "../log4js.js";
const router = new Router()
router.post("/api/login", async (ctx) => {
const {username, password} = ctx.request.body
if (['admin'].includes(username)) return ctx.body = {code: 1, message: "该账户不对外开放"}
const [rows] = await mysql.query("SELECT * FROM mir_web.player WHERE username = ? AND password = ?", [username, password])
if (rows?.length == 1) {
const token = jwt.sign(rows[0], process.env.SECRET_KEY, {expiresIn: '24h'});
return ctx.body = {code: 0, message: "登录成功", token}
}
log4js.koa.error("用户登录失败", username)
return ctx.body = {code: 1, message: "用户名或密码错误"}
})
router.post("/api/enter_game", async (ctx) => {
const {srvId, account} = ctx.request.body
})
export default router.routes()