Skip to main content

get_user_auth_status

查询一个 consent_grant_id 当前的授权状态:是否仍有效绑定、授权覆盖的能力范围(scopes)、过期时间,以及未绑定时的下一步建议动作(next_action)。
授权链路:request_user_bind → verify_user_bind 得 consent_grant_id → 业务调用前可用 get_user_auth_status 探活。consent_grant_id 是本工具的参数(必填);一个 Agent 下可绑定多个用户,不带 grant 无法指定查哪个授权。
失效/过期不报错:当 consent_grant_id 无效、已过期或属于其它能力时,本工具不抛错,而是返回 bound: false 且 next_action: "request_bind"(提示重新走绑定流程)。请按响应体的 bound 字段判断,而非依赖错误码。

参数

返回

仍有效绑定时:
无效 / 已过期 / 能力不匹配时(不报错,返回未绑定态):

手机号解密

phone_encrypted 是密文,密钥由你的 API Key 算出,我们不额外下发。两步:
  • 第 1 步 · 算密钥:对你的 API Key 做 HMAC-SHA256,消息固定为 clawdot/phone-encryption/v1,得到 32 字节密钥。
  • 第 2 步 · 解密:把 phone_encrypted 做 Base64 解码,前 12 字节是 IV,其余是 AES-256-GCM 密文(末 16 字节为认证标签),用第 1 步的密钥解开即得手机号。
Python
Node.js
Go
同一个手机号每次返回的密文都不一样:每次加密都用新的随机 IV。不要拿密文做去重、比对或缓存键,要比对请先解密。
换了 API Key 旧密文就解不开:密钥由 API Key 算出,换 Key 等于换密钥。密文即查即用即可,不要长期存下来指望以后再解。Key 不对会解密失败而非解出乱码:AES-GCM 带完整性校验,Key 不对或密文被改动都会直接报错。建议在你自己的后端解密:让 Agent 把这串密文原封不动交给你的服务端再解,手机号就不会出现在对话上下文或第三方平台的会话日志里。

错误码

consent_grant_id 无效 / 已过期 / 能力不匹配不会报错,而是返回 bound: false(见上文)。完整错误码见 错误处理。

调用示例