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 通过
  • FAQ 页 /support/faq 通过

总计:

  • 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 重启 -> 线上真值验证”这条链路固定下来,避免以后只看本地构建结果。


AOVIS 部署归档:公共站点无障碍修复

归档日期:2026-04-13

1. 归档目的

本次记录用于保存公共站点 UI / a11y 修复的发布信息,覆盖首页、登录页、支持页和商品相关交互的可访问性改进。

2. 发布身份

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

3. 变更摘要

本次发布主要改动包括:

  • components/commerce.tsx
  • app/page.tsx
  • components/email-signin-form.tsx
  • components/product-selector.tsx
  • components/support-actions.tsx
  • components/product-faq.tsx

核心修复点:

  • 公共站点共享壳层增加 skip link
  • 搜索浮层补齐 dialog 语义、焦点恢复与 Tab 循环
  • 图标入口补充可访问名称
  • 首页锚点跳转增加 scroll-margin-top
  • 邮箱登录表单补齐 label/input 绑定与 autocomplete
  • 商品套餐选择器补齐选中状态语义
  • FAQ 折叠项补齐 button/answer 关联
  • 支持卡图标补齐装饰性语义

4. 发布前检查

本次发布前已经完成:

  • 本地构建:npm run build
  • release 预检查:npm run deploy:preflight
  • scope check:npm run deploy:scope-check

5. VM 部署步骤

实际部署路径:

gcloud compute ssh aovis-store-staging-vm --zone us-west1-c --project aovis-site-1 --account [email protected] --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'

执行结果:

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

6. 线上验证结果

发布后执行:

npm run deploy:verify

验证结果:

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

总计:

  • 7/7 passed
  • 0 failed

7. 运行状态

当前结论:

  • 发布已完成
  • 线上验证已通过
  • 该发布已作为公共站点无障碍修复基线归档

8. 备注

本次发布的重点不是视觉重做,而是把公共站点的交互语义补齐,减少键盘和读屏用户的阻力,同时保持现有品牌与页面结构不变。


AOVIS 记录:邮件登录与 App / Web 身份分流确认

归档日期:2026-04-13

1. 记录目的

本段用于记录今天对邮件登录链路的进一步确认,避免后续调优时把 Web 登录、App 登录和未来设备唯一性策略混在一起处理。

2. 已确认的边界

  • Web 端邮件登录仍然属于 Auth.js / NextAuth 的 Web Session 体系
  • App 端邮件登录仍然属于独立的 App Magic Link + App Token 体系
  • Web 和 App 共享同一个 User 主体,但不共享 token 体系
  • 未来设备唯一性、设备授权、设备激活应继续落在 App Token / device 维度上,不应反向改写 Web 登录入口

3. 今天对齐过的文档

4. 今天的实现结论

  • Web 邮件登录需要继续避免邮件客户端预览 / 扫描直接消费一次性 token
  • 当前的落地页继续作为 Web 侧的过渡确认页,符合 Web / App 分流要求
  • 这次调整没有把 Web 登录改造成 App 登录,也没有引入新的设备绑定逻辑

5. 明天继续调优的方向

  • 继续看移动端登录页的提示与跳转细节
  • 继续检查账户页和订单页在小屏下的可用性
  • 如后续需要接入设备唯一性,再沿着 App Token 和设备授权文档推进,不回改 Web Session 主链路