个人访问令牌
掌握针对 CLI、MCP 协议以及 CI/CD 自动化流水线配置 ORIGIN_TOKEN 的场景,以及与浏览器登录凭据的边界。
在日常开发中,绝大多数开发者完全无需手动创建个人访问令牌。本文将阐明极少数需要使用原始访问令牌(格式通常为 oat_…)的高级场景,以及如何进行凭据的安全管理与轮换。
默认推荐方案:浏览器即时授权
在个人笔记本或台式机等交互式开发设备上,推荐直接使用 CLI 登录命令:
npx originai login该命令将在浏览器中唤起授权页面,并在完成后将用户级凭据安全写入本地系统的 ~/.origin/settings.json。在此之后,本地 CLI 命令、Claude Code 插件(通过 originai mcp)以及本地 MCP 客户端均会自动拾取该凭据。你完全无需手动复制或导出任何字符串。
何时需要显式生成个人访问令牌
| 业务场景 | 推荐凭据使用方式 |
|---|---|
| 本地交互式开发设备 | 直接执行 npx originai login,无需手动管理令牌。 |
| CI/CD 流水线或无头服务器环境 | 在 Web 设置中生成访问令牌,并在环境变量中配置 ORIGIN_TOKEN=oat_… 作为安全密钥。 |
| 纯远程 HTTP MCP 托管主机(无法运行标准 stdio) | 配置 ORIGIN_TOKEN 并配合远程 MCP 服务端点使用。 |
| 凭据疑似泄露或权限回收 | 在控制台设置中一键注销旧令牌,并立即重新签发新令牌。 |
创建与配置访问令牌(CI / 高阶场景)
- 登录控制台,进入 系统设置 → 访问令牌(Access tokens)。
- 点击 创建(Create),并请立即复制所展示的明文字符串——基于安全设计,该令牌仅在生成时明文展示一次,前缀通常为
oat_。 - 在你的 CI/CD 流水线秘密变量或远程服务器环境中进行注入:
export ORIGIN_TOKEN=oat_… - 若怀疑令牌曾经暴露于公开代码库或不受控日志中,请立即前往设置面板执行**注销(Revoke)**并轮换新令牌。
当在无头终端中执行 npx originai list-projects(或 list-documents)能够正常返回数据,且确认未将令牌硬编码提交至 Git 时,即表明配置成功。
核心安全准则
- 服务端数据库仅持久化存储访问令牌的安全哈希值,绝不保存明文。一旦遗失明文令牌将无法找回,只能注销并重新创建。
- 令牌直接绑定至你的个人用户主体;具体代码仓库的关联与定位完全由本地
.origin.json维护,令牌本身不硬编码特定项目。 - 严禁将明文令牌放置于前端公开构建变量、未受保护的公共环境变量或提交至代码仓库的
.env文件中。
常见疑问解答
| 疑问 | 权威解答 |
|---|---|
| 个人访问令牌是 Supabase JWT 吗? | 不是。系统后台的 origin-api 采用专用的服务层认证逻辑,通过计算并比对访问令牌的安全哈希进行鉴权。 |
使用 Claude Code 插件必须手动配置 ORIGIN_TOKEN 吗? | 不需要。只要在开发机上成功执行过一次 originai login,插件启动 originai mcp 时即可自动获取本地会话。 |
| 调用令牌执行命令会消耗每日 AI 对话轮次吗? | 完全不会。每日对话轮次配额仅适用于工作台内置的 AI 对话面板;CLI 与 MCP 调用不受其约束。 |
| 外部 Agent 持有令牌是否能随意覆写工作区? | 不能。自项目发布首个 Release 起,外部 Agent 的所有写入会自动受控转为暂存变更请求,不可直接修改工作区。 |