Commit 530ecb2
authored
fix(launch): 外置登录令牌刷新失败时抛出异常而非静默继续 (#3307)
* fix(launch): 外置登录令牌刷新失败时抛出异常而非静默继续
McLoginRequestRefresh 在刷新令牌收到 HttpResponseException(如会话过期返回
401、服务端 5xx)时,仅弹窗提示后 return,未向上抛出。这导致 McLoginServerStart
将本次登录判为"刷新成功"(第 1420 行 return),带着未设置的空 AccessToken 继续
启动;同时也跳过了其设计中的自动恢复——首次刷新失败本应回退到普通登录(用户名/
密码重新验证)。结果:外置(Authlib)用户会话过期时,看到错误弹窗,游戏却仍以无效
会话启动,且不会自动重新登录。
改为在该 catch 中抛出携带服务端错误详情的异常,交由上层既有逻辑处理:首次失败
回退普通登录,二次失败中止启动并提示。同时移除内层重复弹窗(上层已统一提示)。
* fix(launch): 刷新失败改为包装原异常抛出,保留状态码与堆栈
* fix(launch): 及时释放刷新失败的 Response 并兜底校验登录凭据1 parent 8cfec15 commit 530ecb2
1 file changed
Lines changed: 10 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1472 | 1472 | | |
1473 | 1473 | | |
1474 | 1474 | | |
| 1475 | + | |
| 1476 | + | |
| 1477 | + | |
| 1478 | + | |
1475 | 1479 | | |
1476 | 1480 | | |
1477 | 1481 | | |
| |||
1616 | 1620 | | |
1617 | 1621 | | |
1618 | 1622 | | |
1619 | | - | |
| 1623 | + | |
| 1624 | + | |
| 1625 | + | |
| 1626 | + | |
| 1627 | + | |
1620 | 1628 | | |
1621 | | - | |
| 1629 | + | |
1622 | 1630 | | |
1623 | 1631 | | |
1624 | 1632 | | |
| |||
0 commit comments