Mac卸载应用后钥匙串中残留的API Token等凭证需手动清理,否则存在自动登录、误调用及安全风险;应通过钥匙串访问按类别筛选或终端命令精准定位删除,并检查沙盒目录中的明文Token文件。

Mac上卸载应用后,其在钥匙串中遗留的API Token、OAuth Access Token、Refresh Token等登录态凭证仍会持续存在,导致重新安装时自动恢复旧登录、第三方服务误调用过期凭证甚至安全泄露风险。这些Token通常不会随App删除而清除,必须手动定位并彻底删除。
确认目标应用对应的Token类型与存储位置
Token类条目在钥匙串中不统一归类为“互联网密码”,可能混在“密码”“证书”“密钥”“系统项”四类中。常见命名特征包括:含 access_token、refresh_token、oauth_token、api_key、x-api-key、Bearer、JWT、base64字符串片段(如以 eyJ 开头)、或开发者自定义前缀(如 github-legacy-token、notion-integration-v2)。若不确定名称,先不要盲目删除——【误删系统级密钥(如 com.apple.security.sos)会导致iCloud同步中断或钥匙串损坏】。
打开“钥匙串访问” → 左侧选中“登录”钥匙串(不是“iCloud”或“系统”)→ 右上角搜索框输入应用名全称(如 “Slack”“Figma”“Linear”),再分别尝试搜索关键词:token、oauth、api、bearer、jwt。
批量筛选并删除Token类条目
方法一:按类别精准清理
在钥匙串访问窗口中,点击顶部菜单栏“查看” → “显示属性”,确保“种类”列可见;点击“种类”列标题排序,将所有“密码”“密钥”“证书”三类条目分组集中;逐个右键 → “显示简介”,重点检查“账户名称”和“备注”字段是否含目标应用域名(如 api.linear.app)、客户端ID(如 lin-xxx)或明确标注“access”“refresh”字样;确认无误后右键 → “删除”。
方法二:用终端命令定位并删除(适用于已知Token关键字)
打开终端,执行以下命令可列出所有含指定关键词的条目路径:
security find-internet-password -s "github" -w 2>/dev/null || true
security find-generic-password -s "notion-api-key" -w 2>/dev/null || true
若返回结果非空,说明该Token真实存在;使用对应命令强制删除(⚠️不可逆):
security delete-internet-password -s "github.com" -r "http" -p 443
security delete-generic-password -s "notion-api-key"
【注意:-s 参数必须与钥匙串中“名称”字段完全一致,区分大小写和符号;删除前建议先导出备份:security export-keychain -o backup.keychain "登录.keychain-db"】
清理沙盒容器内嵌Token文件(针对Electron/Flutter桌面版)
部分应用(如Cursor、Arc Browser、Obsidian插件)会将Token明文写入自身沙盒目录下的JSON或SQLite文件,绕过钥匙串管理。这类残留无法通过钥匙串访问界面发现。
第一步:定位应用Bundle ID
在“访达”中右键目标App → “显示简介” → 复制“标识符”字段内容(如 dev.cursor.Cursor、company.arc.Arc)。
第二步:进入其容器数据目录
按 Shift + Command + G → 输入:~/Library/Containers/【粘贴Bundle ID】/Data/Library/Application Support/ → 回车。
第三步:查找并删除Token载体文件
在此目录及子目录中,搜索文件名含 token、auth、config、settings 的文件;用文本编辑器打开疑似文件,查找 JWT 字符串(eyJ…)、长十六进制字符串、或 key: 值对;确认属于目标应用后,直接将整个文件拖入废纸篓。
第四步:清空对应缓存与偏好设置
前往 ~/Library/Caches/【Bundle ID】 和 ~/Library/Preferences/【Bundle ID】.plist,一并删除。
验证Token是否已清空
重启目标应用,观察是否要求重新授权或跳转登录页;打开钥匙串访问,再次用原关键词搜索,结果应为空;在终端执行 security dump-keychain "登录.keychain-db" | grep -i "token\|oauth\|api",输出应无匹配行。


















