--login / --logout / --whoami 标志形式仍可作为别名使用,以保持向后兼容性。
身份认证为可选功能。无论您是否登录,策略、仪表板、/audit 页面及所有其他本地功能的工作方式完全相同。登录功能的存在是为了让需要稳定身份的特性(目前是重新审计提醒,未来还会有更多)有所依托。
登录流程
~/.failproofai/auth.json(权限模式 0600)。同一会话随后在应用内仪表板中可见——在 /audit 页面点击 [ set a reminder ] 时将识别您为已登录状态。
对于从未使用 CLI 的用户,仪表板在 /audit 页面以模态对话框的形式提供相同的登录流程。
退出登录
~/.failproofai/auth.json。若 API 服务器不可达,无论如何都会删除本地文件——本地的退出登录意图始终优先。
身份确认
<email> (<user uuid>) 并以退出码 0 退出;否则打印 not signed in 并以退出码 1 退出。若访问令牌距过期不足一分钟,则在后台静默刷新。
持久化重新审计提醒
当您在/audit 页面点击 [ set a reminder ](或通过该按钮触发的模态框登录)时,仪表板会在 ~/.failproofai/next-audit.json 写入一个小型辅助文件:
auth.json 一样,文件以 0600 权限创建。
仪表板的 /api/auth/reminder 端点提供 GET(读取)、POST(设置/重新调度)和 DELETE(清除)操作,需要有效会话。
~/.failproofai/auth.json 的内容
0600 权限创建(仅所有者可读写)。访问令牌是有效期为 1 小时的 HS256 JWT;刷新令牌是不透明的 256 位随机字符串,服务器以 SHA-256(token) 的形式存储。服务器端会检测刷新令牌的重放攻击,并撤销该用户的所有会话。
环境变量
完整列表请参见环境变量。
故障排查
“Could not reach the api-server” — CLI 无法与FAILPROOF_API_URL 建立 TCP 连接。请检查您的网络,或在运行自托管 API 服务器时设置 FAILPROOF_API_URL。
“Rate limited” — 该邮箱(5次/邮箱)或 IP(20次/IP)在 15 分钟内登录尝试次数过多,或同一邮箱上次请求后的 30 秒重发冷却未结束。错误消息中包含以秒为单位的重试等待时间。
验证码被拒绝 — OTP 错误、已过期,或该行达到了 5 次错误猜测锁定上限。请重新运行 failproofai auth login 以获取新的验证码。
