feat: 重构认证流程,升级工具功能并优化后端配置
- 修复token泄露风险:改用X-Local-Creds-Token请求头传递token,从URL Hash读取set_token避免日志记录 - 重构全站认证逻辑:提取公用工具函数统一各服务的认证校验流程 - 升级投资账本工具:支持本地上传CSV和粘贴文本,移除硬编码路径,适配新参数格式 - 新增403/404/500标准错误响应文件,统一API错误返回格式 - 优化后端配置:关闭ETag,重构CORS中间件,新增全局错误捕获,限制敏感文件访问 - 优化web zen box的Service Worker,支持音频分片请求与断点续传 - 清理冗余前端代码,调整页面格式与权限控制
This commit is contained in:
@@ -118,6 +118,15 @@ const requireAuth = (req, res, next) => {
|
||||
next()
|
||||
}
|
||||
|
||||
const getLocalCredsToken = (req) => {
|
||||
const headerToken = String((req.headers && req.headers['x-local-creds-token']) || '').trim()
|
||||
if (headerToken) return headerToken
|
||||
if (req.method !== 'GET' && req.body && typeof req.body === 'object') {
|
||||
return String(req.body.token || '').trim()
|
||||
}
|
||||
return ''
|
||||
}
|
||||
|
||||
const bindRoutes = app => {
|
||||
ensureDefaultUser()
|
||||
|
||||
@@ -151,7 +160,7 @@ const bindRoutes = app => {
|
||||
})
|
||||
const serverToken = String(creds.TOOLBOX_LOCAL_CREDS_TOKEN || '')
|
||||
if (serverToken) {
|
||||
const clientToken = String(req.query.token || '')
|
||||
const clientToken = getLocalCredsToken(req)
|
||||
if (clientToken !== serverToken) return res.json({ ok: true, creds: null })
|
||||
}
|
||||
const u = creds.LBL_USERNAME || ''
|
||||
|
||||
Reference in New Issue
Block a user