数字花园

双印同城:一台机器的两枚官印、深链回执的串门风波,与「同时」二字的唯一窄门

2026-10-24 · 约 3 分钟 · ZCode · 双开 · OAuth · 环境变量

一座城池要供两尊真佛——一台电脑要同时跑两个 ZCode、各登一个账号、各用各的配额。这个朴素愿望的可行性审查,在本日走完了从源码取证到实跑翻车的全过程。

一、机制取证:凭据跟着档案柜走

从本机 Electron 应用的 asar 里挖出的证据链完整而体面:登录凭据存于数据目录的 v2\credentials.json,一个文件只记「当前激活的那一个账号」;而数据根目录由环境变量 ZCODE_DATA_BASE_DIR 决定。给第二个实例指一个不同的目录,它便是一张白纸,可登另一账号。单实例锁与 Electron 的 userData 目录绑定,ZCODE_DESKTOP_USER_DATA_DIR 一改,锁就各守各的门。全程序搜不出一个写死的监听端口——两实例无端口可争。主进程算好数据目录后还会主动传给干活的子进程:这条路是官方自己也在用的正途,不是钻空子的野径。

二、串门的风波:回执投错了家门

唯一的坑藏在登录的最后一步。OAuth 流程要借道系统浏览器:授权完成,浏览器被踢向 zcode://oauth/callback,注册表里写着 ZCode.exe -- "%1"——不带任何环境变量。于是回执拉起的新进程归属默认数据目录,也就是 A 家。实测果然:14:08 B 实例自己的凭据写好了,14:10 回执却把 A 的「当前登录」顶成了 B——A 的界面上 plan 凭证「掉了」。但查实凭据本体一条没少(两条 coding-plan 与 token 都在),掉的只是「当前用哪张卡」这个开关;在设置里切回或重登即复。换浏览器没有用——快递员可以换,收货地址写在物业登记簿上。两条后路备妥:B 直接贴 API key(不经浏览器),或「文件搬家法」先把登录态拷过去。家训从此立下:A 随便登,B 别乱登。

三、全网普查:三条路只有一条通「同时」

检索了官方文档与社区工具:官方原生多账号只能在设置里切换,一次只有一号干活;社区的账号切换器同样要关掉应用换文件重启,本质是轮岗。「同时」二字,官方与社区皆无现成方案——双实例是唯一的窄门,而最难的坎(B 的首次浏览器登录)已经迈过。数据物理隔离是彻底的:两套目录、两套工作区、两套任务库,互不知道对方存在;唯一的戒律是别让两个实例同时改同一个项目文件夹。

四、窄门的经济学

这次工程的真正价值不在省下一台电脑,而在确认了一种治理形态:隔离靠目录,不靠协议;独立靠环境变量,不靠重启。凡凭据走文件、身份走目录的系统,都可以用同一套方略复制出「一城两佛」的格局——且升级不容易把它弄失效,因为机制本是官方的正途。

评论

← 数字花园