Skip to content

[Bug]: 账号令牌失效后刷新会让原默认Key名强制变为default,账号同步则会覆盖原有的启用/禁用状态 #565

@yulu901107

Description

@yulu901107

Pre-submission Checklist / 提交前检查清单

  • I searched existing issues to avoid creating a duplicate / 我已检索现有 issue,确认这不是重复问题
  • I tested on the latest release or current main branch / 我已在最新 release 或 main 分支版本中复现

Deployment Type / 部署方式

Docker Compose / Docker Compose 部署

Problem Area / 问题模块

Token Management / 令牌管理

Metapi Version / Metapi 版本

v1.3.0

Database Type / 数据库类型

SQLite

Bug Description / Bug 描述

  1. Sub2Api账号/API Key各种原因失效后,刷新会将账号令牌管理Tab页下,原本默认的令牌名字自动改名为 default
  2. 无论何时,只要单独对账号进行同步时,手动设置过的启用/禁用状态会被覆盖,同一账号下原本禁用的 key 也会被变成启用。

场景:当第一条被触发时,为了弄清楚default到底是哪个Key,就会同步账号,便会触发第二条。

Steps To Reproduce / 复现步骤

  1. 让一个已有的账号refresh_token失效(比如SUB2API下,直接去登录网站就可能直接刷新refresh_token,之后账号就会过期)
  2. 重新填写refresh_token和expire信息,刷新账户,正常获取余额
  3. 此时,账号令牌管理Tab页中对应的账户下的Key,原来默认的那个,名字会变成default,其余的不影响。(第一个问题被触发)
  4. 在账号令牌管理Tab页,禁用一些Key,然后找到对应的账号,点击同步站点令牌
  5. 同步完成后,对应账号下的所有Key,变为“启用”

Expected Behavior / 预期行为

  1. 刷新账号后,无论是否之前被设置为默认Key,都应该和其他Key一样,刷新后使用获取到的名字
  2. 账号同步后,只要api-key不变,启用/禁用状态,不应该被覆盖

Actual Behavior / 实际行为

  1. 刷新账号后,原本设置为默认的Key,令牌名称被覆盖为了default,但是其他没有被设置默认的Key,名字正常
  2. 无论何时,账号同步,都会将启用/禁用状态,重置为启用

对于1,src/server/services/accountMutationWorkflow.ts#L79 这里是不是在已经拿到了上游tokenName之后,再次使用了default去复写。

对于2,src/server/services/accountTokenService.ts#L309 这里似乎直接会根据上游的设置来覆盖掉本地的设置,但是这里本地的禁用/启用和上游的禁用/启用,不一定有关联。

Logs Or Error Output / 日志或错误输出

Screenshots / 截图

No response

Environment Details / 环境信息

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething is broken

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions