Skip to content

[admin] 支付后台并入 app-admin + 登录安全加固 - #172

Merged
atoncooper merged 1 commit into
mainfrom
feat/admin-pay-merge-security
Nov 4, 2026
Merged

atoncooper merged 1 commit into
mainfrom
feat/admin-pay-merge-security

Conversation

@atoncooper

Copy link
Copy Markdown
Owner

概述

将独立服务 app-pay-admin 退役并合并进统一管理后台 app-admin(app-go/app-admin API + frontend-admin SPA),统一账户、会话、角色、审计与部署入口;同时完成 admin 登录安全加固。

主要变更

支付后台合并

  • 订单 / 会员 / 权益事件 / 回调流水 / SKU 只读查询迁入 /api/pay/*
  • 会员补偿开通(唯一资金写):事务 + MySQL FOR UPDATE + 日额度熔断 + 三留痕
  • 退款复核:直读审批表,approve/reject 经 app-pay internal 端点执行;未配置时 404 隐身
  • app_pay 第二 GORM 连接;pay_* schema 仍归 app-pay/Java Flyway,绝不 migrate
  • 控制台账户管理 /api/console/users(重置密码踢会话、禁止删自己/最后一个 admin)
  • 前端新增支付运营页面(订单/详情/会员/事件/SKU/补偿/退款)与账户页

登录安全

  • 设备指纹:所有 /api/* 带 X-Device-Id,会话绑定 SHA-256(deviceId+UA+语言);strict|id|off
  • IP 绑定:exact|subnet(IPv4 /24、IPv6 /64,可配),不匹配删会话 + 审计
  • 可信代理:只采信 APPADMIN__SECURITY__TRUSTED_PROXIES 内 peer 的 X-Forwarded-*
  • IP + 账户双限流;login_failed / login_new_device / login_new_ip / session_*_mismatch 审计
  • CORS 仅同源/精确 Origin(拒绝 */null),放行 X-Device-Id;新增 CORP/COOP 安全头
  • admin_session.device_hash 幂等迁移(仅动自有表)

退役与部署

  • 删除 app-pay-admin/、:8003、pay-admin profile、独立 SSR/TLS/certgen、ci-pay-admin.yml
  • compose / 两机 deploy / k8s / swarm 注入支付库、ops key、资金审计与可信代理配置
  • 文档重写 docs/app-admin.md,同步架构/配置/部署/API/FAQ 等,清理计划编号引用

破坏性变化 / 上线注意

  • 旧 admin 会话无 device_hash,升级后需重新登录
  • 浏览器必须能生成 localStorage 设备 ID;脚本需带 X-Device-Id(POST 还需同源 Origin)
  • 旧 payadmin_user 账户不迁移,需在「账户」页重建
  • PAY_OPS_KEY 变为可选:留空仅退款复核页隐藏
  • 删除 docs/app-pay-admin.md 与 app-pay-admin 代码目录

验证

  • cd app-go/app-admin && gofmt -l . && go vet ./... && go test -count=1 ./... && go build ./... ✅
  • CGO_ENABLED=0 GOOS=linux go build ./... ✅
  • cd frontend-admin && pnpm build(tsc + vite)✅
  • docker compose config --quiet(主/client)✅、kubectl kustomize deploy/k8s ✅
  • 新增测试覆盖:设备/IP 绑定、可信代理、CORS、双限流、登录/会话异常审计、支付查询/补偿/退款、账户管理

关联

  • 分支:feat/admin-pay-merge-security

- 退役 app-pay-admin:订单/会员/权益事件/SKU/回调、补偿开通、退款复核迁入 app-admin + frontend-admin

- 统一 admin_user/admin_session/admin_audit、控制台账户管理与支付域第二 GORM 连接

- 登录安全:设备指纹绑定、会话 IP 绑定(exact/subnet)、可信代理真实 IP、IP+账户双限流、登录/新设备/新 IP/会话异常审计

- CORS 仅精确 Origin、放行 X-Device-Id、CORP/COOP 安全头;部署、CI、文档同步退役 app-pay-admin
@atoncooper
atoncooper merged commit e6363a9 into main Nov 4, 2026
2 checks passed
@atoncooper
atoncooper deleted the feat/admin-pay-merge-security branch November 4, 2026 09:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant