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:
yangxiangyuan
2026-08-01 21:50:05 +08:00
parent 2143adb3bb
commit a6f763ffd8
26 changed files with 304 additions and 72 deletions
+9 -1
View File
@@ -320,6 +320,14 @@ const getExpectedToken = () => {
const creds = readLocalCreds()
return String(creds.TOOLBOX_LOCAL_CREDS_TOKEN || '').trim()
}
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 createRouter = () => {
const router = express.Router()
@@ -374,7 +382,7 @@ const createRouter = () => {
router.get('/auth/local_creds', (req, res) => {
try {
const token = String((req.query && req.query.token) || '').trim()
const token = getLocalCredsToken(req)
const expectedToken = getExpectedToken()
if (!expectedToken || token !== expectedToken) {
return res.status(401).json({ ok: false, error: 'invalid_token' })