Skip to content

PCL Lite 1.7.0-snapshot-2

Pre-release
Pre-release

Choose a tag to compare

@askbbtsk askbbtsk released this 01 Nov 10:39
· 37 commits to main since this release
1.7.0-snapshot-2:账号能直接导入令牌了 —— 粘 Refresh Token、Minecraft 令牌或 Cookie 就能登,重复的正版档案也会自动合并成一条。

PCL Lite 1.7.0-snapshot-2。

快照版,只有选了「快照」或更激进通道的用户会收到。稳定版通道请继续用 1.6.4-hotfix-5。

改了什么

一、登录多了「粘贴凭据」这条路

以前只能走设备码:打开 microsoft.com/link、输码、选账号。现在登录页底下多了一个
「使用令牌登录」,粘进去就行,三种凭据自动识别:

粘进去的东西 会发生什么 能续期
Refresh Token 换出整套新令牌,和正常登录完全等价 能,一直有效
Minecraft 令牌 直接用,不换 不能,24 小时后失效
微软 Cookie 走授权码流程换出整套令牌 能

输入框改成了多行、可滚动,长令牌不会再被截断(以前 MaxLength 是 1000,
一段 refresh token 经常一千多字符,粘进去被静默切掉尾巴,报错还看不出原因)。

二、续期记住了「谁签发的」

Refresh Token 是绑死在签发它的 Azure 应用上的。以前不管哪来的令牌,续期都拿 PCL 自己的
身份去换,微软直接回 AADSTS70000(令牌是发给别的客户端的),档案就废了。

现在档案里记一个 RefreshClientId,续期时用同一个身份换。依次试三个已知签发方:

  • PCL Lite 自己
  • Lunar 启动器(4358653d-…)
  • In-Game Account Switcher(54fd49e4-…)

三个都不是,就明确告诉你「这个令牌换不了」,而不是丢一个错误码让人猜。

三、重复的正版档案自动合并

同一个号反复登录会一直往下堆新条目,列表里出现好几个一模一样的名字。根因是合并时
只比 UUID,不看登录方式 —— 同一个号用设备码登一次、用令牌导入一次,就成了两条。

现在按「UUID + 登录方式」判断,同号同方式只留一条。留哪条:先看有没有 Refresh Token
(有才续得下去),再看到期时间。反过来只看时间的话,一条快过期的令牌档案会把能续期的挤掉。

启动时自动跑一次,历史遗留的重复条目会自己消失。

档案列表里现在也会标出这条是怎么登进来的:设备代码 / Access Token / Refresh Token / Cookie。

四、Lunar 页面

  • 账号下拉框每一项改成两行:上面账号名,下面 UUID。同名的号一眼分不清,UUID 才是一对一能对上的
  • 支持「Minecraft 令牌导入」的 Lunar 身份账号:能启动,但 24 小时后要重新导入(这种账号没有 refreshToken)
  • 令牌过期又续不了,现在直接报错说清楚,不再拿个死令牌进游戏卡在 Connecting...
  • 令牌不是 Lunar 应用签的(aid 对不上),日志里会警告,省得一路走到卡住才让人猜
  • 左边栏的账号信息跟着选中项刷新,以前右边换完号左边还写着上一个
  • 老配置里的 pcl:<ProfileId> 前缀和 1.5.0 之前的裸 localId 会被归一化,不会再出现「选中的账号没了」

怎么用

进登录页,点最下面那行「使用令牌登录」,粘进去,回车。

三种凭据里 Refresh Token 最省事:一次粘进去能一直用,效果和正常登录一样。

校验

SHA-256(签名后):BC7388195B9906E4D2996181F58AC81C5C591DACBB87FD11E007C0F2D8ADA994

大小:19,373,352 字节

已知问题

  • Cookie 那条路还没在真实登录态下验证过。代码路径是通的(授权码 + prompt=none),
    但手上没有一份真实可用的 Cookie 去实测,可能会回 login_required。真遇到了就先用
    Refresh Token 或设备码,别在 Cookie 上耗时间
  • 令牌导入的账号 24 小时后必须重新导入,这是微软定的,没有绕法