为什么我在npm官网创建的只读token总是被自动删除?
可能导致token自动被删除的常见原因
- 执行了
npm logout命令:这是最常见的触发场景,该命令的默认逻辑就是向npm官方服务端发起请求,直接吊销你本地当前配置正在使用的激活token,服务端吊销后网页端自然就看不到该token了,和token本身的权限类型(只读/读写)无关。 - 创建时误设了过期时间:npm官方现在创建token时默认提供了多个过期时间选项,包括1天、7天、30天、永久,如果你创建时没有手动选择永久有效,到期后token会被系统自动清理。
- 组织安全策略限制:如果你使用的是npm组织下的账号,或者该token用于拉取组织私有包,组织管理员可能配置了强制安全策略,比如闲置超过一定时长的token自动吊销、所有token最长有效期不超过固定时长,哪怕你单独设置了永久有效也会被组织策略覆盖。
- 误执行了吊销命令:如果你的操作历史中有执行
npm token revoke相关指令,或者本地有自动化脚本、CI流程内置了操作结束后自动吊销token的逻辑,也会触发非预期的token删除。
排查和解决方法
- 先查看shell历史记录,确认是否有执行过
npm logout、npm token revoke相关命令,后续使用过程中如果要切换账号,不要直接在使用该只读token的环境下执行登出操作,单独修改配置文件切换即可。 - 下次创建token时,仔细确认过期时间选择为永久有效,同时不要勾选仅浏览器会话生效的选项。
- 如果是组织账号,联系管理员确认组织的token安全策略,按照要求调整token的使用周期。
- 排查本地的项目脚本、CI配置,确认没有自动登出、自动吊销token的逻辑。
内容的提问来源于stack exchange,提问作者cutmancometh
相关产品推荐
相关产品推荐

