功能: - 激活码管理 (Pro/Auto 两种类型) - 账号池管理 - 设备绑定记录 - 使用日志 - 搜索/筛选功能 - 禁用/启用功能 (支持退款参考) - 全局设置 (换号间隔、额度消耗等) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
96 lines
3.4 KiB
Markdown
96 lines
3.4 KiB
Markdown
# CursorPro 用户体系分析
|
||
|
||
## 用户区分
|
||
|
||
从反混淆代码分析,CursorPro 并非简单的 "auto/pro" 用户区分,而是基于**激活码类型**和**积分系统**:
|
||
|
||
### 1. 激活码属性
|
||
|
||
每个激活码包含以下属性:
|
||
- `switchLimit` - 换号次数上限(默认100次)
|
||
- `expireDate` - 到期时间
|
||
- `membership_type` - 会员类型(对应 Cursor 官方的 Pro/Free)
|
||
|
||
### 2. 功能权限
|
||
|
||
| 功能 | 说明 |
|
||
|------|------|
|
||
| **一键换号** | 消耗1积分,切换到新的 Cursor 账号 |
|
||
| **无感换号** | 自动轮换账号池,需要激活码未过期 |
|
||
| **免魔法** | SNI 代理功能,无需翻墙使用 |
|
||
| **重置机器码** | 重置设备ID,需要管理员权限 |
|
||
|
||
### 3. 核心机制
|
||
|
||
```
|
||
┌─────────────────────────────────────────────┐
|
||
│ CursorPro 工作原理 │
|
||
├─────────────────────────────────────────────┤
|
||
│ │
|
||
│ 用户激活码 ──→ 服务器验证 │
|
||
│ │ │
|
||
│ ▼ │
|
||
│ 获取 Cursor 账号信息: │
|
||
│ • accessToken │
|
||
│ • refreshToken │
|
||
│ • WorkosCursorSessionToken │
|
||
│ • membership_type (Pro/Free) │
|
||
│ │ │
|
||
│ ▼ │
|
||
│ 写入本地 Cursor 配置: │
|
||
│ • state.vscdb (SQLite) │
|
||
│ • storage.json │
|
||
│ • machineid │
|
||
│ │ │
|
||
│ ▼ │
|
||
│ 重启 Cursor ──→ 使用新账号 │
|
||
│ │
|
||
└─────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 4. Pro 账号获取
|
||
|
||
从代码中可以看到:
|
||
- 服务器端维护一个**账号池**
|
||
- 账号池包含 Cursor 官方的 Pro 账号
|
||
- 用户通过激活码访问这些共享账号
|
||
- `membership_type` 字段标识账号是 "pro" 还是 "free"
|
||
|
||
### 5. UI 元素
|
||
|
||
```css
|
||
.pro-badge {
|
||
background: linear-gradient(90deg, #8b5cf6, #d946ef);
|
||
/* 紫色渐变徽章,标识 PRO 功能 */
|
||
}
|
||
```
|
||
|
||
UI 显示内容:
|
||
- 剩余换号次数:`{switchRemaining} / {switchLimit}`
|
||
- 当前账号邮箱
|
||
- 会员类型(Pro/Free)
|
||
- 到期时间
|
||
|
||
### 6. 无感换号(Seamless Mode)
|
||
|
||
这是核心付费功能:
|
||
- 自动在多个账号间切换
|
||
- 当一个账号额度用完,自动切换到下一个
|
||
- 用户无感知,保持连续使用
|
||
|
||
```javascript
|
||
// 切换模式
|
||
mode: 'auto' // 自动切换(当额度低于阈值)
|
||
mode: 'manual' // 手动切换
|
||
|
||
// 切换阈值
|
||
switchThreshold: 10 // 剩余额度低于10%时自动切换
|
||
```
|
||
|
||
## 总结
|
||
|
||
**用户等级实际上是由激活码决定的**:
|
||
- 不同激活码有不同的 `switchLimit`(换号次数)
|
||
- 服务器决定给用户分配 Pro 还是 Free 账号
|
||
- "Pro 用户能拿 Pro 号" 取决于服务器的分配策略,而非插件本身
|