Skip to content

[ncm-cli] Access token expires after 24 hours and refresh token is not used #16

Description

@AHPEventCollection

问题概述

@music163/ncm-cli 0.1.6的实名账号访问令牌在24小时后失效,CLI没有使用已经保存的refresh token自动续期,而是直接把账号判定为未登录,要求用户重新扫码

这会导致基于ncm-cli的定时任务和Agent自动化每天中断一次,也可能因为频繁重新授权触发设备数量上限

环境

  • Windows 11
  • Node.js >= 18
  • @music163/ncm-cli 0.1.6
  • 已配置开放平台App ID和Private Key
  • 使用ncm-cli login --background完成实名账号授权

复现步骤

  1. 执行ncm-cli login --background并扫码授权
  2. 执行ncm-cli login --check,返回已登录实名账号
  3. 登录后正常执行歌单查询和添加操作
  4. 等待24小时
  5. 再次执行ncm-cli login --check

实际结果

  • access token的到期时间与签发时间相差整整24小时
  • 到期后ncm-cli login --check直接返回未登录
  • 依赖登录态的动态命令无法使用,歌单自动化任务失败
  • CLI本地凭证结构中已经保存refresh token,但到期后没有发生静默续期
  • 官方文档当前只要求重新执行登录,没有说明access token和refresh token的有效期及续期策略

期望结果

  • access token到期前主动使用refresh token续期,或在收到401后被动刷新并重试原请求
  • 只有refresh token失效或被撤销时才要求用户重新扫码
  • 文档明确说明access token、refresh token的有效期和续期策略

希望官方确认

  1. access token固定24小时是否为开放平台的预期策略
  2. refresh token的有效期和正式刷新方式是什么
  3. ncm-cli是否计划支持自动刷新和失败后重试
  4. 在修复前是否有官方支持的免每日扫码方案

关联问题

本Issue补充的是Windows+当前最新版0.1.6上的24小时精确复现,以及自动化任务被直接中断的影响

如有需要,可以继续提供不包含token、Private Key和其他凭证的脱敏诊断信息

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions