Skip to main content

AOVIS 部署归档:App 登录认证 + 设备激活

归档日期:2026-04-13

1. 归档目的

这份记录用于保存本次 aovis.app 生产发布的完整发布信息,方便后续排查、回滚和复用 SOP。

本次发布覆盖:

  • App 专用登录 token 颁发
  • App Magic Link 登录
  • 设备激活端点
  • entitlement / subscription 基础能力
  • 对应的 Prisma schema 和迁移

2. 发布身份

  • 仓库:aovis-direct-store
  • 分支:main
  • 发布提交:a9acfabb41fa0a26c9fab682882e283641619053
  • 远程:origin/main
  • 部署目标:aovis-store-staging-vm
  • GCP 项目:aovis-site-1
  • GCloud 账号:[email protected]

3. 变更摘要

本次发布的主要改动包括:

  • app/api/auth/app-token/route.ts
  • app/api/auth/app-magic-link/route.ts
  • app/api/auth/app-magic-link/verify/route.ts
  • app/api/devices/activate/route.ts
  • app/app-auth/page.tsx
  • lib/app-token.ts
  • lib/app-magic-email.ts
  • lib/entitlement.ts
  • lib/verify-app-request.ts
  • prisma/schema.prisma
  • prisma/migrations/20260413110000_add_device_and_subscription_fields/migration.sql
  • public/.well-known/apple-app-site-association
  • public/.well-known/assetlinks.json
  • scripts/test-entitlement.ts
  • docs/app-jwt-token-issuance.md
  • docs/AOVIS_App_登录认证接口规范_v1.0.md

4. 高风险路径说明

本次发布触及以下高风险路径:

  • app/api/auth/* 的新增 App 专用路径
  • app/api/devices/*
  • lib/entitlement.ts
  • lib/app-token.ts
  • prisma/
  • public/.well-known/

说明:

  • 没有修改现有 Web Auth.js 登录路由
  • 没有修改 auth.ts
  • 没有修改 lib/auth-config.ts
  • 没有修改 Stripe webhook 或 checkout 路由
  • 没有修改 .env.production

5. 发布前检查

本次发布前已经完成:

  • 本地类型检查:npx tsc --noEmit
  • 本地构建:npm run build
  • Prisma 状态检查:npx prisma migrate status
  • Entitlement 脚本冒烟测试:npx tsx scripts/test-entitlement.ts
  • scope check:npm run deploy:scope-check
  • release 预检查:pnpm release:prod -- --prepare-only

6. VM 部署步骤

实际部署路径:

gcloud compute ssh aovis-store-staging-vm --zone us-west1-c --project aovis-site-1 --command 'cd /opt/aovis/aovis-store-staging && git fetch origin && git pull origin main && npm install && npx prisma generate && npm run build && pm2 restart aovis-store-staging --update-env'

执行结果:

  • 成功拉取到发布提交 a9acfabb41fa0a26c9fab682882e283641619053
  • npm install 成功
  • npx prisma generate 成功
  • npm run build 成功
  • pm2 restart aovis-store-staging --update-env 成功

7. 线上验证结果

发布后执行:

npm run deploy:verify

验证结果:

  • robots.txt 通过
  • sitemap.xml 通过
  • 首页 / 通过
  • 产品页 /products/nexa-prime-4k 通过
  • 技术页 /technology 通过
  • 服务页 /services 通过

总计:

  • 7/7 passed
  • 0 failed

8. 运行状态

当前结论:

  • 发布已完成
  • 线上验证已通过
  • 工作区已清理干净
  • 该发布可作为后续 App 登录、设备激活和 entitlement 接口的基线版本

9. 后续建议

后续如果继续扩展 App 侧能力,建议沿用以下顺序:

  1. 先在 lib/entitlement.ts / lib/app-token.ts 复用现有基础能力
  2. 再新增对应 API 路由
  3. 每次发布前都执行 npm run deploy:scope-check
  4. 每次发布后都执行 npm run deploy:verify

10. 备注

本次归档的目标是把“提交 -> VM 部署 -> PM2 重启 -> 线上真值验证”这条链路固定下来,避免以后只看本地构建结果。