TapAuth

🔐 零配置OAuth,安全委托代理权限

为AI代理提供零配置的OAuth令牌托管服务,用户浏览器授权后即可获得作用域令牌,支持Google、GitHub、Slack等12+主流平台,自动缓存与刷新。

收藏
5.1k
安装
1.5k
版本
1.4.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

TapAuth 是一款面向AI编码代理的委托式OAuth令牌管理工具,核心价值在于让代理无需接触任何API密钥或凭证,即可安全调用用户授权的第三方服务。

使用模式

通过命令替换模式内联调用:

curl -H "Authorization: Bearer $(scripts/tapauth.sh <provider> <scopes>)" <api-url>

首次运行流程:
1. 脚本创建授权请求,向stderr输出审批URL(需展示给用户)

2. 自动轮询等待用户浏览器确认(最长10分钟)

3. 用户授权后,stdout输出令牌,本地加密缓存

4. 后续调用直接返回缓存令牌,过期自动刷新

显著优点

| 特性 | 说明 |
|------|------|
| **零配置** | 无需API密钥、client_secret或环境变量,开箱即用 |
| **安全架构** | 零知识加密——TapAuth服务端不存储明文令牌,grant_secret本地管理 |
| **12+平台覆盖** | Google全家桶、GitHub、Slack、Linear、Notion、Vercel、Sentry、Asana、Discord |
| **智能缓存** | 按provider+scope组合隔离存储,权限700/600,支持自定义缓存目录 |
| **广泛兼容** | Claude Code、Cursor、OpenClaw、Codex、GitHub Copilot及任何支持shell的代理 |

潜在局限与风险

架构性限制:

  • 无法服务端撤销令牌:因零知识加密设计,TapAuth无法代用户撤销已发放的OAuth令牌,需用户自行在各平台设置中解除授权
  • 审批URL依赖人工:首次授权必须用户主动点击链接完成浏览器交互,纯自动化场景(如CI/CD)需预审批
  • 短令牌生命周期:Google/Linear等1小时过期,虽有自动刷新,但极端长任务可能中断

使用注意:

  • 错误重定向stderr会导致令牌污染(2>&1会破坏$(...)捕获)
  • scope格式因平台而异(Google用URL风格calendar.readonly,GitHub用单词repo
  • OpenClaw secrets模式仅10秒超时,无法交互式授权

适合人群

  • AI编码代理用户:Claude Code、Cursor等工具的深度使用者,需频繁调用第三方API
  • 隐私敏感场景:不愿将API密钥明文存储在代理环境或配置文件中
  • 多平台集成开发者:需要统一方式对接GitHub项目管理、Google办公套件、Linear看板等
  • 快速原型验证:零配置特性适合MVP阶段的快速API接入测试

常规风险

| 风险等级 | 场景 | 缓解措施 |
|----------|------|----------|
| 中 | 用户误点钓鱼审批URL | 始终验证`tapauth.ai`域名,脚本内置grant_secret验证 |
| 低 | 本地缓存文件被窃取 | 权限700/600限制,建议配合系统全盘加密 |
| 低 | 授权范围过大 | 遵循最小权限原则,使用细粒度provider如`google_sheets`替代全功能`google` |

TapAuth 内容

references文件夹
scripts文件夹
手动下载zip · 21.6 kB
asana.mdtext/markdown
请选择文件