账号与安全
本页覆盖 Argus 账号(用户级)的全部安全能力:注册、登录、OAuth 关联账号、双因素认证(2FA)、 敏感操作二次验证(step-up)与个人访问令牌(PAT)。这些都属于用户,与组织、项目无关—— 组织内权限见 组织、项目与 RBAC。
注册与邮箱验证
在 Console /register 页注册,需要:姓名、邮箱、密码。密码策略(服务端强制):
- 长度 8-72 字符(上限来自 bcrypt);
- 至少包含 1 个大写字母、1 个小写字母、1 个数字(不强制特殊字符);
- 命中常见弱密码黑名单会被拒绝。
注册成功后自动登录并进入 /onboarding。系统会异步发送验证邮件;未验证时可在
/settings/profile 点 Send verification email 重发,验证链接 24 小时有效。
用 Google / GitHub OAuth 注册的账号没有密码、邮箱自动视为已验证。之后如需设置密码,走一次 「忘记密码」流程即可(见下)。
登录与会话
在 /login 页用邮箱 + 密码登录;已启用 2FA 的账号会在提交后被要求追加 6 位动态码(TOTP)或备份码。
会话机制(对用户可见的行为):
- 登录成功后颁发会话 Cookie
argus_session(HttpOnly),有效期 7 天; - 登出(用户菜单 Logout)立即删除服务端会话;
- 重置密码会吊销该账号的全部会话(所有设备都需要重新登录)。
忘记密码
发起重置
在 /forgot-password 页填邮箱。无论邮箱是否存在都会返回成功(不暴露账号存在性);存在则收到重置邮件。
完成重置
点击邮件中的链接(/reset-password/{token} 页),重置 token 30 分钟内有效。设置新密码后,
该账号所有已登录会话被吊销,需要重新登录。
OAuth 关联账号
支持的第三方登录:Google 与 GitHub。
- 用 OAuth 登录:登录 / 注册页底部的 Google / GitHub 按钮。若该第三方邮箱已有 Argus 账号,会自动关联到既有账号;否则自动创建新账号。
- 管理关联:
/settings/linked-accounts页列出已关联账号(Provider / Email / Linked at), 可逐个 Unlink 解绑;未关联的 provider 显示 Link Google / Link GitHub 按钮,点击即走 一次 OAuth 授权完成关联。
申请的权限范围很小:Google 为 openid email profile,GitHub 为 read:user user:email,仅用于
读取邮箱与基本资料完成登录。
双因素认证(2FA)
Argus 的 2FA 采用基于时间的一次性密码(TOTP)(Google Authenticator、1Password 等均可)+ 10 个一次性备份码。
启用(Console:/settings/2fa)
点击 Enable 2FA
服务端生成 TOTP secret,页面展示二维码(也可手动输入 secret)。
保存备份码
同屏展示 10 个 8 位备份码,每个只能使用一次。这是唯一一次展示,请立即保存到密码管理器。
输入 6 位动态码确认
用认证器 App 输出的当前 6 位码点 Confirm,2FA 即生效。之后每次登录都需要动态码(或消耗一个备份码)。
关闭
/settings/2fa 页点 Disable 2FA。这是高敏操作,需要先通过 step-up 二次验证(见下节)。
当前不提供「重新生成备份码」入口。若备份码即将耗尽,建议在仍持有 TOTP 的情况下先关闭再重新 启用 2FA,以获得一组新的备份码。
敏感操作二次验证(Step-up)
对高敏操作,Argus 要求会话在最近 10 分钟内做过一次二次验证(step-up):修改密码、关闭 2FA、 创建 / 吊销 PAT、轮换 / 吊销 DSN key、修改成员角色 / 移除成员、提交数据删除请求等。
- Console 会在需要时自动弹出确认对话框(输入 TOTP 或备份码),验证通过后自动重试原操作;
- 一次 step-up 在 10 分钟窗口内对多个敏感操作有效;
- 未启用 2FA 的账号 step-up 直接放行(因此强烈建议启用 2FA);
- 直接调 API 时对应
POST /v1/auth/step-up(body 传totp_code或backup_code),未 step-up 的会话调用受保护端点会收到401 {"error":"step_up_required"}; - PAT 无法完成 step-up:用 PAT 调用高敏端点固定返回
403 {"error":"pat_step_up_unsupported"}——个人访问令牌天然无法完成”实时人工二次验证”,一枚泄露的 PAT 不应足以执行改密码 / 轮换密钥这类操作。
个人访问令牌(PAT)
个人访问令牌(Personal Access Token,PAT)是用户级 API 凭证,用于脚本、CI、MCP 客户端等程序化 访问查询侧 API(认证方式总览见 OpenAPI / 查询 REST API)。
创建(Console:/settings/pat)
填名称与有效期
Token name + 过期天数(默认 90 天,可设 1-3650 天)。
点击 Generate
需要先通过 step-up 验证。生成后页面仅此一次显示完整 token,请立即保存——之后列表里只保留 前缀提示(hint)。
- 格式:
argus_pat_+ 64 位十六进制(服务端只存哈希); - 使用:HTTP 头
Authorization: Bearer argus_pat_xxxxxxxx...; - 列表:
/settings/pat显示 Name / Hint / Expires / Last used; - 吊销:列表行内 Revoke(需 step-up),吊销立即生效。
Scope 与项目绑定
PAT 携带 scope 列表,有效权限 = 你当前的组织角色 ∩ token 的 scope(绝不提权;角色被降级后 token 权限即时收敛)。当前需要了解两点:
- Console 创建的 PAT 默认带
readscope,适合只读查询; - 用于 MCP / REST 工具调用的 token 必须带
mcp:readscope 并绑定到一个项目 (project_id);带mcp:read的 token 不能当作 Console 登录会话使用。MCP 接入步骤见 MCP 接入。
Console 的 PAT 创建表单目前尚未提供 scope 与项目绑定选择(默认 read)。需要 MCP 专用 token
时,请以 Console 实际提供的入口为准,或经 API POST /v1/me/pats(body 传
scopes: ["mcp:read"] 与 project_id)创建。
FAQ
OAuth 注册的账号怎么设置密码? 走一次 忘记密码 流程:对你的邮箱发起重置,设置新密码后即可邮箱 + 密码登录,OAuth 关联不受影响。
手机丢了,TOTP 用不了怎么登录? 登录时改用备份码(启用 2FA 时展示的 10 个 8 位码之一,一次一个)。若备份码也已用尽,目前需要 联系管理员 / 平台支持处理,请务必妥善保存备份码。
PAT 泄露了怎么办?
立即到 /settings/pat Revoke 该 token(吊销即时生效),并检查
审计日志 中该 token 的调用记录。
为什么我的 PAT 调用某些接口返回 403 pat_step_up_unsupported?
该接口是高敏操作(改密码、轮换 DSN、增删 PAT 等),只允许交互式会话在 step-up 之后调用,PAT 被设计为无法执行这类操作。
会话多久过期?
argus_session Cookie 有效期 7 天;登出、重置密码会提前吊销。step-up 状态另计,仅 10 分钟。