Scratch / CCW 扩展
CaelLabID 提供了 Scratch 3.0 / TurboWarp / CCW(Gandi) 的 OAuth 登录扩展,让你的 Scratch 项目可以直接使用 CaelLabID 账号登录。
工作原理
Scratch 运行环境无法直接完成 OAuth 流程(不能处理 redirect),因此需要一个 PHP 代理中转:
Scratch/CCW 扩展
↓ 1. 打开授权页面(用户浏览器)
↓ 2. 用户授权后,CaelLabID 回调到 PHP 代理
↓ 3. PHP 代理用 code 换 token,获取用户信息
↓ 4. Scratch 扩展轮询 PHP 代理获取结果
用户登录成功,拿到 user ID
环境要求
| 组件 | 要求 |
|---|---|
| PHP | >= 8.3,需要 curl 扩展 |
| Web 服务器 | 支持 HTTPS |
| Scratch 环境 | Scratch 3.0 / TurboWarp / CCW(Gandi) |
第一步:部署 PHP 代理
将 Scratch/php/ 目录下的三个文件上传到你的服务器:
php/
├── auth.php # 授权入口(创建 session 文件)
├── callback.php # OAuth 回调(用 code 换 token)
└── result.php # 轮询结果接口
确保服务器可写 sessions/ 目录(callback.php 会自动创建)。
配置
修改 callback.php 中的三项配置:
$CLIENT_ID = '你的 Client ID';
$CLIENT_SECRET = '你的 Client Secret';
$REDIRECT_URI = 'https://你的域名/路径/callback.php';
提示
Client ID 和 Secret 在 开放平台 创建应用后获取。
redirect_uri 必须完全一致
$REDIRECT_URI 必须与授权请求中使用的 redirect_uri 完全一致(包括协议、域名、路径),否则 Token 交换会失 败。
文件说明
| 文件 | 作用 | HTTP 方法 |
|---|---|---|
auth.php | 创建 session 文件,存储 state | GET |
callback.php | 接收 CaelLabID 回调,换 token,获取用户信息 | GET(CaelLabID 重定向) |
result.php | 前端轮询此接口获取登录结果 | GET |
Session 存储
- Session 以 JSON 文件形式存储在
sessions/目录 - 文件名:
{state}.json - 超过 10 分钟自动删除
- 完成或出错后立即删除
第二步:加载扩展
CCW (Gandi)
- 打开 CCW
- 点击「扩展」→「自定义扩展」
- 加载
extension-ccw.js文件
Scratch 3.0 / TurboWarp
- 打开 Scratch 或 TurboWarp
- 加载
extension.js文件
extension.js 同时兼容 Scratch 3.0、TurboWarp 和 CCW,会自动检测运行环境。
第三步:使用积木
配置积木
| 积木 | 说明 | 默认值 |
|---|---|---|
| 设置代理地址 | PHP 代理服务地址 | https://id.caellab.com/demo/sc |
| 设置 Client ID | 应用的 Client ID | 内置默认值 |
| 设置 Client Secret | 应用的 Client Secret | 内置默认值 |
信息
如果不调用设置积木,扩展会使用内置的默认值(CaelLab 官方 Demo 应用)。如果你的应用有自己的 Client ID,务必先调用设置积木。