56 lines
2.2 KiB
Markdown
56 lines
2.2 KiB
Markdown
# 登录/支付/VIP 权限检查报告
|
||
|
||
检查范围:digital、cnomadcna、nomadvip、payjsapi
|
||
|
||
## 一、登录流程
|
||
|
||
| 项目 | /api/auth/me | /api/auth/sync-session | /api/auth/logout | credentials |
|
||
|------|--------------|------------------------|------------------|-------------|
|
||
| digital | ✅ 读 pb_session,refresh 回写 | ✅ 设置 Cookie | ✅ 清除 Cookie | ✅ include |
|
||
| cnomadcna | ✅ | ✅ | ✅ | ✅ AuthModal/JoinModal |
|
||
| nomadvip | ✅ | ✅ | ✅ | ✅ AuthForm |
|
||
|
||
**Cookie domain:**
|
||
- digital:已用 `getAuthCookieDomain(request)`,localhost 不设 domain
|
||
- cnomadcna:已改为 `getAuthCookieDomain`,localhost 兼容
|
||
- nomadvip:已改为 `getAuthCookieDomain`,localhost 兼容
|
||
|
||
## 二、支付流程
|
||
|
||
| 项目 | 前端入口 | Next.js API | payjsapi 路径 | site_id |
|
||
|------|----------|-------------|---------------|---------|
|
||
| digital | join 页 / Roadmap | /api/pay | /digital/payh5 | digital |
|
||
| cnomadcna | HeroSection JoinModal | /api/pay | /cnomadcna/payh5 | meetup |
|
||
| nomadvip | 支付页 | 直接调 payjsapi | /nomadvip/payh5 | vip |
|
||
|
||
**payjsapi 回调:**
|
||
- digital/cnomadcna:`_digital_base`,xorpay_notify / zpay_notify → `handle_payment_success` → site_vip
|
||
- nomadvip:xorpay_notify / zpay_notify → `handle_payment_success` → site_vip
|
||
- meetup 类型:effective_site_id 固定为 "meetup"
|
||
- vip 类型:effective_site_id 为 "vip"
|
||
|
||
## 三、VIP 权限
|
||
|
||
| 项目 | SITE_ID | VIP 校验逻辑 |
|
||
|------|---------|--------------|
|
||
| digital | digital | site_id=digital 或 site_id=vip |
|
||
| cnomadcna | meetup | site_id=meetup |
|
||
| nomadvip | vip | site_id=vip |
|
||
|
||
**site_vip 表:** user_id + site_id + order_id + expires_at
|
||
|
||
## 四、环境变量
|
||
|
||
| 变量 | 说明 |
|
||
|------|------|
|
||
| AUTH_COOKIE_DOMAIN | 生产环境根域,如 .hackrobot.cn |
|
||
| POCKETBASE_EMAIL / POCKETBASE_PASSWORD | VIP 查询用 admin |
|
||
| PAYMENT_API_URL | payjsapi 地址,如 https://api.hackrobot.cn |
|
||
| NEXT_PUBLIC_POCKETBASE_URL | PocketBase 地址 |
|
||
| NEXT_PUBLIC_SITE_ID | digital / meetup / vip |
|
||
|
||
## 五、本次修复
|
||
|
||
1. **cnomadcna**:auth/me、sync-session、logout 改用 `getAuthCookieDomain`,支持 localhost
|
||
2. **nomadvip**:同上,新增 `app/lib/auth-cookie-domain.ts`
|