什么是Device Token?
在苹果的开发者文档中,Device Token 是通过DCDevice
类的generateToken
方法生成的。这个方法为设备创建一个临时的、匿名的标识符,常用于验证设备的完整性和身份。该 Token 主要用于与服务器交互时,帮助服务器验证发起请求的设备是否为合法设备,从而增加应用的安全性。生成 Token 的过程不会泄露用户的个人信息,确保了用户隐私的保护。
经过不严谨的研究,Device Token的生成是与开发者账号绑定的,也就是说,非openai开发者生成的账号是无法用在openai的认证服务中的。所以自己开发程序是无法获得openai需要的Device token的,必须通过抓包程序获取。
为什么需要Device Token?
因为Device Token可以获取 preauth_cookie,有了这个就可以获取到对应账号的refresh token,实现refresh token自由!
本教程将利用mitmproxy中间人攻击工具帮助你获取Device token
你需要:
1.一台苹果设备(以及可以在Apple Store下载ChatGPT的Apple ID)
2.一台计算机可以用来充当中间人代理苹果设备的流量
3.一台可以在苹果设备上登录的OpenAI账号
操作步骤:
1.在你的计算机上安装mitmproxy
Windows安装
pip install mitmproxy
Mac安装
brew install mitmproxy 或者 pip install mitmproxy
PS:其他系统可以自己尝试找一下安装方法
2. 命令行启动服务
mitmweb
默认监听端口为8080端口, 可以加 -p
参数指定监听端口
注意,使用mitmproxy时,苹果设备的梯子会失效,需要走本地(计算机端)代理
像这样(假设你的代理是 http://127.0.0.1:7890):
mitmweb --mode upstream:http://127.0.0.1:7890
3. 苹果设备设置代理
打开设置-无线局域网-点击你的WIFI(需要链接在计算机的同一个网络下)-配置代理-代理选择手动
设置服务器主机名(就是自己电脑本机IP地址)和端口(默认8080)
主机名获取方法:
windows电脑通过ipconfig
查看,mac 电脑通过ifconfig
查看(IPv4那一个)
4. 苹果设备安装证书
手机浏览器输入http://mitm.it
,点击这个获取描述文件并安装
然后,在通用-关于本机-证书信任设置:信任该证书
5. 苹果设备下载或者重装ChatGPT应用
在App Store下载或者重装ChatGPT应用,并随便登录一个OpenAI账号
6.在mitmweb获取你的Device token
在Search栏搜索https://ios.chat.openai.com/backend-api/preauth_devicecheck
里面有一条很长的device_token记录,复制它就可以正常使用了
恭喜,你已经成功获取了OpenAI颁发给你苹果设备的专属device token了,你可以拿它去获取refresh token了
那么接下来,可以参考论坛中这一篇文章,继续获取refresh token:https://linux.do/t/topic/42253
不是三级号也可以实现refresh token自由啦(bushi
如果您觉得有用,请给我这个快要升二级升三级的新手号一个赞吧
阿里嘎多3Q斯密达~