fix: 系统检查修复 — 安全和稳定性
后端: - config.ts 使用 requireAdmin 中间件,统一响应格式 - feedback.ts 使用 requireAdmin 中间件,移除重复权限检查 - feedback.ts 添加 affectedRows 检查(反馈不存在时返回 404) - 全局错误处理中间件兜底未捕获异常 前端: - request.ts 添加 15 秒请求超时设置
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
import { Router } from 'express'
|
||||
import pool from '../db/connection'
|
||||
import { authMiddleware } from '../middleware/auth'
|
||||
import { requireAdmin } from '../middleware/requireAdmin'
|
||||
|
||||
const router = Router()
|
||||
|
||||
/** 获取公开配置(无需管理员权限) */
|
||||
/** 获取公开配置(经过全局 authMiddleware,无需管理员权限) */
|
||||
router.get('/', async (_req, res) => {
|
||||
try {
|
||||
const [rows] = await pool.execute('SELECT config_key, config_value FROM sys_config')
|
||||
@@ -20,19 +20,11 @@ router.get('/', async (_req, res) => {
|
||||
})
|
||||
|
||||
/** 更新配置(管理员权限) */
|
||||
router.put('/', authMiddleware, async (req, res) => {
|
||||
router.put('/', requireAdmin, async (req, res) => {
|
||||
try {
|
||||
const userId = (req as any).userId
|
||||
const [users] = await pool.execute('SELECT role FROM users WHERE id = ?', [userId])
|
||||
const user = (users as any[])[0]
|
||||
|
||||
if (!user || user.role !== 'admin') {
|
||||
return res.status(403).json({ error: '无权限' })
|
||||
}
|
||||
|
||||
const data = req.body
|
||||
if (!data || typeof data !== 'object') {
|
||||
return res.status(400).json({ error: '无效的配置数据' })
|
||||
return res.status(400).json({ code: 40001, message: '无效的配置数据' })
|
||||
}
|
||||
|
||||
// 批量更新配置
|
||||
|
||||
Reference in New Issue
Block a user