概述
Didit 是对智能体最友好的身份验证平台。AI 编程智能体(Cursor、Claude Code、GitHub Copilot、Devin、OpenHands、Codex)无需打开浏览器,即可通过编程方式完成注册、配置工作流并开始身份验证。 智能体为何青睐 Didit:- 从零到获取凭据仅需 2 次 API 调用(register + verify-email)。
- 无需浏览器,完全无界面运行,非常适合 CI/CD 和智能体工作流。
- 新 API 账户无需第二因素:完成邮箱验证后即刻返回 token。
- 自动配置组织和应用,验证响应中包含
api_key。 - 完整的管理 API,可通过 API 配置工作流、问卷、名单、计费等所有内容。
- 提供 MCP 服务器,智能体可原生发现并使用 Didit 工具。
基础 URL
本指南中的所有 endpoint 都位于认证主机上:https://verification.didit.me/v3)是不同的主机。认证主机签发 JWT 访问 token 并管理应用。验证主机负责会话、AML、工作流等功能,使用您通过本流程获得的长期有效 api_key 进行身份验证。
快速开始
步骤 1 注册
201 Created):
A3K9F2)会发送到该邮箱。验证码在发送后 10 分钟过期。如果已过期,请使用相同的邮箱和密码再次调用此 endpoint:对于尚未验证的账户,它会返回 200 以及 "A new verification code has been sent to your email.",并附带新的验证码。另有专用的 POST /programmatic/resend-otp/ endpoint(请求体:{"email", "password"})也可以重新发送验证码,两次发送之间有 60 秒冷却时间;两个路径都共享下方的注册速率限制。
步骤 2 验证验证码并获取凭据
200 OK):
application.api_key,并在每次调用验证 API 时将其作为 x-api-key 请求头发送。
token 为 RS256 签名的 JWT。
expires_in 默认为 86400 秒(24 小时)。访问 token 仅用于 apx.didit.me/auth/v2 上的管理 endpoint;verification.didit.me/v3 上的验证 API 流量使用的是长期有效的 api_key 进行身份验证,而不是 JWT。步骤 3 使用 API
后续登录
在任何后续设备上,您都可以用邮箱和密码换取新的 JWT:access_token 和 refresh_token,无需浏览器。之后,调用 GET /organizations/me/ 获取您的 org_id(即组织的 uuid),再调用 GET /organizations/me/{org_id}/applications/ 列出组织的应用(每个条目的 uuid 即 app_id),最后调用 GET /organizations/me/{org_id}/applications/{app_id}/ 取回 api_key。
在控制台中创建的邮箱/密码账户,在邮箱验证完成后同样可以使用
POST /programmatic/login/。仅通过 OAuth 创建的控制台账户,需要先设置密码,才能使用这一无界面登录 endpoint。登录时需要额外验证
POST /programmatic/login/ 仅在账户没有第二因素时返回 token。
另外还有三种可能的响应,编写登录脚本的智能体需要做好处理:
API 密钥无需登录,因此所有自动化任务都应使用 API 密钥。启用了第二因素的账户无法通过此 endpoint 完成登录。
密码要求
密码由服务器端强制校验,每次只检查一条规则。首个失败项会立即中断校验,并返回纯数组形式的错误,例如["Password must contain at least one uppercase letter."]。(该 endpoint 的其他验证错误使用以字段为键的 {"password": [...]} 结构。密码强度规则返回纯数组格式是服务器端已知的不一致问题;在客户端代码中,请将其视为 {"password": [...]} 处理。)
速率限制与账户锁定
这三项相互独立的控制措施用于保护认证主机。任何一项都可能触发429 响应;Retry-After 响应头会告诉您需要等待多久再重试。
429 响应体如下所示:
管理应用
通过身份验证后,您可以在所属组织内查询、创建或更新应用。 这非常适合希望为每位客户分配一个应用的经销商。每个应用都有各自的client_id、api_key、元数据和设置。当您的组织拥有需要分开管理的不同产品、品牌、地区、环境或用例时,这种方式同样有用。
403。
注册后智能体可以做什么
使用api_key 时,智能体可以完全访问验证 API。https://verification.didit.me/v3 上已审计的路径如下:
完整的接口范围请参阅管理 API 参考。
MCP 服务器集成
为获得最佳的智能体体验,请使用托管的 Didit MCP 服务器,地址为https://mcp.didit.me/mcp。它无需 API 密钥:首次连接时,客户端会打开浏览器,您点击 使用 Didit 登录(OAuth 2.1 配合 PKCE),服务器将以您的身份执行操作,并遵循您在控制台中的角色权限。原生支持远程 MCP 的客户端(Cursor、VS Code)直接使用此配置;Claude 网页版和桌面版则将其添加为自定义连接器:
claude mcp add --transport http didit https://mcp.didit.me/mcp。仅支持 stdio 的客户端(Windsurf、Zed)通过 mcp-remote 桥接工具连接,该工具会为您执行 OAuth 流程。
您在上述注册流程中获得的 API 密钥用于从您自己的后端调用 REST API;MCP 永远不会使用该密钥。详情请参阅 MCP 概览和各客户端安装指南。
错误响应结构参考
所有apx.didit.me/auth/v2 endpoint 都使用相同的三种响应结构(参见 openapi-auth.json):
- 字段级校验:
{"field": ["message", ...]},HTTP400。 - 表单级校验(尤其是密码强度和验证码错误):纯数组
["Invalid or expired verification code."],HTTP400。 - 身份验证与业务规则:
{"detail": "..."},状态码为400、401、403、404或429。429响应包含Retry-After响应头,告诉您需要等待多久再重试(响应体仅包含detail)。
{"detail": "..."} 的形式返回错误,429 响应包含 X-RateLimit-* 和 Retry-After,参见速率限制。