获取ChatGPT的DeviceToken

参考资料: https://linux.do/t/topic/58580

实现素材

  1. ProxyPin v1.1.1 (TF版)全平台开源免费抓包软件(Stream不支持前置HTTP代理、Shadowrocket好像不支持看响应体)
  2. iPhone 手机一部(我用的iOS18 Beta7的港版 iPhone 14 Pro)
  3. 安卓平板一部(要求能上网、能提供实现登录ChatGPT的HTTP代理、能开热点)

上述方案不唯一,原理一致,只代表我的实现方案,都可以换。

操作流程

  1. 准备素材(包括HTTP代理)、卸载你手机的ChatGPT App。
  2. 在ProxyPin中,开启HTTPS解密,安装根证书(切换默认浏览器到Safari、安装描述文件、信任为根证书)。
  3. 开启热点和HTTP代理,将iPhone连接到热点,不需要设置代理,但是如果代理跑在热点设备的话,要看一下路由器也就是网关IP(热点WiFi)。
  4. 设置ProxyPin的VPN权限、软件设置里面的代理-外部代理设置-启用,且host和port填写HTTP代理,比如192.168.1.3:10809。
  5. 打开Appstore,下载ChatGPT iOS版本App。
  6. 打开ProxyPin代理,首次打开ChatGPT,让它检查健康,然后进行登录,支持第三方登录。然后测试一下问答,关闭ProxyPin代理。
  7. 在日志中找到的 https://ios.chat.openai.com/backend-api/preauth_devicecheck 的响应体,里面就有很长的DeviceToken了。