Spaces:
Paused
Paused
| const admin = require('../models/admin'); | |
| // 验证管理员权限的中间件 | |
| function authMiddleware(req, res, next) { | |
| // 跳过登录相关的路由 | |
| if (req.path.startsWith('/v1/admin/')) { | |
| return next(); | |
| } | |
| // 对静态HTML页面的处理 | |
| if (req.path === '/logs.html') { | |
| // 日志页面的访问不在中间件中做验证,而是在前端页面中进行验证 | |
| return next(); | |
| } | |
| // 修改为:只对管理相关的API进行认证 | |
| if (req.path.startsWith('/v1/api-keys') || | |
| req.path.startsWith('/v1/invalid-cookies') || | |
| req.path.startsWith('/v1/refresh-cookies') || | |
| req.path.startsWith('/v1/logs')) { | |
| // 获取Authorization头 | |
| const authHeader = req.headers.authorization; | |
| if (!authHeader || !authHeader.startsWith('Bearer ')) { | |
| return res.status(401).json({ | |
| success: false, | |
| message: '未提供认证token' | |
| }); | |
| } | |
| // 提取token | |
| const token = authHeader.split(' ')[1]; | |
| // 验证token | |
| const result = admin.verifyToken(token); | |
| if (!result.success) { | |
| return res.status(401).json({ | |
| success: false, | |
| message: '无效的token' | |
| }); | |
| } | |
| // 将用户信息添加到请求对象 | |
| req.admin = { | |
| username: result.username | |
| }; | |
| } | |
| next(); | |
| } | |
| module.exports = authMiddleware; |