SuperAPI AI 工具集

oauth-helper

安全与审计

查看项目

更新于 10-16 07:12

技能介绍

OAuth Helper 是一个自动化 OAuth 登录流程的工具,通过 Telegram 与用户进行确认交互。它支持 7 家主流 OAuth 提供商,帮助在浏览器中完成需要人工确认的登录操作。

用途

当用户请求登录某个网站时,OAuth Helper 可以自动打开登录页面、识别可用的 OAuth 登录方式,并通过 Telegram 让用户选择与确认,最终完成登录。它适合需要人工介入确认的自动化登录场景,避免在无人确认的情况下擅自授权。

支持的提供商

工具支持以下 7 家提供商,并给出了各自的检测域名:

  • Google:accounts.google.com
  • Apple:appleid.apple.com
  • Microsoft:login.microsoftonline.com、login.live.com
  • GitHub:github.com/login/oauth
  • Discord:discord.com/oauth2
  • 微信:open.weixin.qq.com
  • QQ:graph.qq.com

前置条件

  • Clawd 浏览器已登录各 OAuth 提供商(一次性设置)
  • 已配置 Telegram 频道

主要能力

核心工作流

流程 A:登录页面包含多个 OAuth 选项

  1. 打开网站登录页面
  2. 扫描页面中可用的 OAuth 按钮
  3. 发送 Telegram 消息,列出可选的登录方式,请用户回复编号选择
  4. 等待用户回复(60 秒超时)
  5. 点击所选 OAuth 按钮
  6. 进入流程 B

流程 B:OAuth 授权页面

  1. 根据 URL 检测 OAuth 页面类型
  2. 提取目标网站信息
  3. 发送 Telegram 消息,说明某网站请求某提供商登录,请用户回复 yes 确认
  4. 等待用户回复 yes(60 秒超时)
  5. 执行该提供商特定的点击序列
  6. 等待重定向回原网站
  7. 发送登录成功消息

检测模式

工具为每家提供商列出了 URL 匹配模式,用于识别当前处于哪家提供商的 OAuth 页面。例如 Google 匹配 accounts.google.com/o/oauth2、accounts.google.com/signin/oauth、accounts.google.com/v3/signin;Apple 匹配 appleid.apple.com/auth/authorize、appleid.apple.com/auth/oauth2;Microsoft 匹配 login.microsoftonline.com/common/oauth2、login.microsoftonline.com/consumers、login.live.com/oauth20;GitHub 匹配 github.com/login/oauth/authorize、github.com/login、github.com/sessions/two-factor;Discord 匹配 discord.com/oauth2/authorize、discord.com/login、discord.com/api/oauth2;微信匹配 open.weixin.qq.com/connect/qrconnect、open.weixin.qq.com/connect/oauth2;QQ 匹配 graph.qq.com/oauth2.0/authorize、ssl.xui.ptlogin2.qq.com、ui.ptlogin2.qq.com。

各提供商的点击序列

工具为每家提供商定义了具体的页面元素选择器与操作步骤。例如 Google 使用账号选择器 [data-identifier]、.JDAKTe,授权按钮 button:has-text("Allow")、button:has-text("Continue");Apple 使用邮箱输入框 input[type="email"]、#account_name_text_field,密码输入框 input[type="password"]、#password_text_field,继续按钮 button#sign-in、button:has-text("Continue"),信任设备按钮 button:has-text("Trust");Microsoft 使用账号选择器 .table-row[data-test-id],邮箱输入框 input[name="loginfmt"],密码输入框 input[name="passwd"],下一步按钮 button#idSIButton9,接受按钮 button#idBtn_Accept;GitHub 使用邮箱输入框 input#login_field,密码输入框 input#password,登录按钮 input[type="submit"],授权按钮 button[name="authorize"],两步验证输入框 input#app_totp;Discord 使用邮箱输入框 input[name="email"],密码输入框 input[name="password"],登录按钮 button[type="submit"],授权按钮 button:has-text("Authorize");微信采用二维码扫描方式,截图二维码发送给用户,等待手机扫码确认,检测页面重定向;QQ 支持二维码或密码登录,二维码方式截图发送给用户,密码方式包含切换链接 a:has-text("密码登录")、用户名输入框 input#u、密码输入框 input#p、登录按钮 input#login_button。

OAuth 按钮检测

工具会扫描登录页面中的特定选择器来识别 OAuth 按钮,例如 Google 使用 [data-provider="google"]、.google-btn,常见文本为 "Continue with Google";Apple 使用 [data-provider="apple"]、.apple-btn,常见文本为 "Sign in with Apple";Microsoft 使用 [data-provider="microsoft"],常见文本为 "Sign in with Microsoft";GitHub 使用 [data-provider="github"],常见文本为 "Continue with GitHub";Discord 使用 [data-provider="discord"],常见文本为 "Login with Discord";微信使用 .wechat-btn、img[src*="wechat"],常见文本为 "WeChat Login";QQ 使用 .qq-btn、img[src*="qq"],常见文本为 "QQ Login"。

使用方式

一次性设置

需要在 clawd 浏览器中登录各提供商,命令示例如下:

Google

browser action=navigate profile=clawd url=https://accounts.google.com

Apple

browser action=navigate profile=clawd url=https://appleid.apple.com

Microsoft

browser action=navigate profile=clawd url=https://login.live.com

GitHub

browser action=navigate profile=clawd url=https://github.com/login

Discord

browser action=navigate profile=clawd url=https://discord.com/login

WeChat/QQ - Use QR scan, no pre-login needed

使用示例

用户:帮我登录 Kaggle

Agent:

  1. 导航到 kaggle.com/account/login
  2. 检测到 Google/Facebook/Yahoo 选项
  3. 发送:"🔐 Kaggle supports: 1️⃣ Google 2️⃣ Facebook 3️⃣ Yahoo Reply number to choose"
  4. 用户回复:1
  5. 点击 Google 登录
  6. 检测到 Google OAuth 页面
  7. 发送:"🔐 Kaggle requests Google login. Confirm? Reply yes"
  8. 用户回复:yes
  9. 选择账号,点击 Continue
  10. 发送:"✅ Logged into Kaggle!"

错误处理

  • 未回复 yes:取消并通知用户
  • 需要两步验证:提示用户手动输入验证码
  • 二维码超时:重新截图新的二维码
  • 登录失败:截图并发送给用户以便调试

适用场景

适用于需要通过 OAuth 登录网站、且希望由用户通过 Telegram 进行确认的自动化场景。特别适合登录页面提供多种 OAuth 选项、需要用户选择的情况,以及需要人工确认授权、处理两步验证或二维码扫描的场景。

限制

  • 需要预先在 clawd 浏览器中登录各 OAuth 提供商(微信、QQ 除外,使用二维码扫描)
  • 需要配置 Telegram 频道
  • 用户确认有 60 秒超时限制
  • 两步验证需要用户手动输入验证码
  • 二维码登录需要用户使用手机扫码确认
  • 版本历史:v1.0.0 为初始版本,支持 7 家 OAuth 提供商