前言:为什么要折腾这个?

在折腾机场订阅或自建节点的时候,很多朋友都会用到 sub2api 这种转换工具。它能帮我们把订阅链接转换成标准的 API 格式,方便客户端导入或者做其他二次处理。

但是,很多时候我们遇到的一个痛点就是 OAuth 验证。特别是使用 Team(团队)账号或者某些企业级服务时,每次都要跳去授权页点一下,不仅麻烦,而且在自动化脚本里根本没法跑。

今天就来聊聊,有没有什么办法能让支持 sub2api 的 Team 账号免去 OAuth 这个步骤,直接丝滑转换。

理解问题:OAuth 挡在了哪里?

首先得明白为什么会有 OAuth。

OAuth 本来是为了安全的,确认“你授权这个应用访问你的数据”。在 Team 账号的场景下,通常涉及到团队权限的验证。如果不走 OAuth,服务提供商怎么知道你是那个 Team 的合法成员呢?

所以,官方原生的支持几乎是不可能的。如果你指望官方出一个“关掉 OAuth”的开关,那基本是在做梦。

核心思路:中间人“偷梁换柱”

既然官方不让关,那我们能不能自己在中间搞点事情?这里有几个可行的技术方向,大家可以根据自己的能力水平选择。

方案一:本地模拟授权(Token 持久化)

这是最常见也最稳妥的方法。

  1. 手动授权一次:第一次还是比较老实,去点一下 OAuth 授权。
  2. 抓取 Token:在浏览器开发者工具(F12)里,或者通过抓包工具(如 Fiddler、Charles),找到授权成功后返回的 Access Token 或者 Refresh Token
  3. 持久化存储:把这个 Token 保存下来,存到数据库里,或者简单的存成一个配置文件。
  4. 本地重放:在后续调用 sub2api 接口时,不再走 OAuth 流程,而是直接在 Header 里带上这个 Token:
    Authorization: Bearer 你抓取到的Token
    

注意:Token 通常有过期时间。如果是 Refresh Token,记得写个脚本在过期前自动刷新;如果是永久的或者长周期的,就省事了。

方案二:部署代理服务(Cookie 中转)

如果你不想搞 Token,或者那个接口的 Token 机制特别复杂,可以试试 Cookie 中转。

  1. 搭建一个简易的 Web 服务:用 Nginx 或者 Node.js、Python 都行,部署在你自己的 VPS 上。
  2. 携带 Cookie 转发
    • 先手动登录 Team 账号,拿到登录后的 Cookie。
    • 你的代理服务接收到 sub2api 请求时,在转发请求给目标服务时,直接塞入这个 Cookie。
  3. 绕过登录页:对于目标服务来说,它看到的是一个带着有效 Cookie 的请求,自然就认为你已经登录了,也就不会把你踢去 OAuth 页面。

这种方法适合 Team 账号的登录态是基于 Cookie Session 的场景。

方案三:利用 sub-web 类项目的自定义规则

很多开源的 sub-converter 或 sub-web 版本其实支持“预处理”功能。

检查一下你正在使用的转换工具是否支持自定义请求头前置脚本

  • 如果你的 Team 提供商有一个不需要 OAuth 的内部 API(这通常比较难找,或者是隐藏接口),你可以直接配置转换器去调用这个内部接口。
  • 有些高级的转换器允许你注入 JS 脚本,在请求发出前自动加上你的鉴权信息。

常见坑点与避雷指南

搞技术嘛,踩坑是难免的。这里有几个经验之谈:

  1. IP 封禁风险:如果你频繁在同一个 IP 下刷新 Token 或请求,官方的风控可能会找上门。建议配合代理池使用。
  2. Token 失效:一旦你修改了 Team 账号的密码,或者管理员重置了权限,旧的 Token 瞬间就会失效。记得做好监控,一旦接口报 401,立刻发邮件或消息提醒自己。
  3. 隐私泄露:如果你用的是公开的转换器(比如别人搭建的 sub-web),千万别把包含敏感信息的 Token 或 Cookie 传过去。最好自己搭建一套转换服务,数据掌握在自己手里才安全。

总结

想要 Team 账号支持 sub2api 且免 OAuth,归根结底就是**“模拟合法身份”**。

  • 最简单:手动拿 Token,然后写脚本死磕。
  • 最稳定:搭个中间代理,负责携带身份信息转发。
  • 最高级:寻找非 OAuth 的内部接口(难度极大)。

没有银弹,只有适合自己的方案。如果你手里正好有类似的账号在闲置,不妨试着按上面的思路折腾一下,说不定就打通了“自动化”任督二脉。

如果你有更好的实现路径,也欢迎交流讨论!

标签: none

AI Skills Smart Station on Nick Launches

评论已关闭