跳转到主要内容
POST
认证功能是新增的。这些端点由您的应用的签发方提供,例如 https://<name>.auth.didit.me,并且绝不接受您的 Didit API 密钥。
刷新令牌只能使用一次。再次发送已使用过的刷新令牌会撤销整个会话,因此同一会话一次只执行一个刷新操作,并需同时替换全部三个令牌。参阅刷新令牌。

请求体

由 grant_type 选择的两种授权方式之一。该 endpoint 接受两种授权方式的字段并验证接收到的每个字段,因此若刷新请求中同时携带了格式错误的 code_verifier,将会收到字段错误。请仅发送您所选授权方式对应的字段;任何其他字段都将返回 unknown_field。

grant_type
enum<string>
必填
可用选项:
authorization_code
code
string
必填

您的 redirect_uri 收到的 code 查询参数。在进行兑换之前,请先核对回调的 state。

Maximum string length: 128
示例:

"Vb0bVt4CLlr8ZL0kE5mAxv8gS6R0rW3hYqC1pN7dJ2s"

code_verifier
string
必填

其 S256 哈希值作为登录 code_challenge 的 PKCE 验证器。

Required string length: 43 - 128
Pattern: ^[A-Za-z0-9._~-]{43,128}$
示例:

"dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk"

redirect_uri
string
必填

发起登录时使用的完全一致的 redirect_uri。它必须仍然是该应用的重定向 URI 之一。

Maximum string length: 2048
示例:

"https://app.example.com/auth/callback"

client_id
string

可选。发送时,必须等于您的应用 ID,否则请求将失败并返回 invalid_client。

Maximum string length: 64
示例:

"7b0a6c2e-3f41-4c9a-8d55-1e2f3a4b5c6d"

scope
string

可选,并被标准 OpenID Connect 客户端接受。它绝不会扩大登录所授予的权限范围。

Maximum string length: 512
示例:

"openid email"

响应

会话的新 token。

单个会话的 token。刷新后须一并替换所有三个 token。

access_token
string
必填

ES256 JWT,请求头为 typ: at+jwt。请将其作为 Authorization: Bearer <access_token> 发送。声明:AccessTokenClaims。

示例:

"eyJhbGciOiJFUzI1NiIsImtpZCI6ImtfOHNKMmRRdlgwbkxyNVRmWWIzSGtQdyIsInR5cCI6ImF0K2p3dCJ9.eyJpc3MiOiJodHRwczovL3lvdXItYXBwLmF1dGguZGlkaXQubWUiLCJhdWQiOiI3YjBhNmMyZS0zZjQxLTRjOWEtOGQ1NS0xZTJmM2E0YjVjNmQiLCJzdWIiOiIxYzlkOGI4OC0xYmZmLTQzZDEtYWQ3YS04OGIyYmMwMDI0ZTkiLCJzaWQiOiJjOWFiZjZjYy0yZDY0LTRiZjItYjMxZS1hNGQwOWEwNzBhYjEiLCJqdGkiOiJSZ3F1NzE3OWUtbGhKMGJ2VmVELVlnIiwiaWF0IjoxNzkyMjMzNjc0LCJleHAiOjE3OTIyMzM5NzQsInZlbmRvcl9kYXRhIjoidXNlci00MiIsIm9yZyI6bnVsbCwidmVyaWZpZWQiOnt9LCJhbXIiOlsicGFzc3dvcmQiXSwiYWN0IjpudWxsLCJjbGllbnRfaWQiOiI3YjBhNmMyZS0zZjQxLTRjOWEtOGQ1NS0xZTJmM2E0YjVjNmQifQ.AxrqN8Pm-Op-3OayZk8HcvlFQZhozRiOvQ0SgQsGgrz4UNeJlUEeSlq9B8WcYUuM8naRaY5kQt_TUofnsYcyYQ"

id_token
string
必填

ES256 JWT,请求头为 typ: JWT,供您的应用读取登录用户信息。切勿将其作为访问 token 发送。声明:IDTokenClaims。

示例:

"eyJhbGciOiJFUzI1NiIsImtpZCI6ImtfOHNKMmRRdlgwbkxyNVRmWWIzSGtQdyIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL3lvdXItYXBwLmF1dGguZGlkaXQubWUiLCJhdWQiOiI3YjBhNmMyZS0zZjQxLTRjOWEtOGQ1NS0xZTJmM2E0YjVjNmQiLCJzdWIiOiIxYzlkOGI4OC0xYmZmLTQzZDEtYWQ3YS04OGIyYmMwMDI0ZTkiLCJzaWQiOiJjOWFiZjZjYy0yZDY0LTRiZjItYjMxZS1hNGQwOWEwNzBhYjEiLCJqdGkiOiJNTHRPNHM4SHItQnJrcDd2NTlPV0Z3IiwiaWF0IjoxNzkyMjMzNjc0LCJleHAiOjE3OTIyMzM5NzQsInZlbmRvcl9kYXRhIjoidXNlci00MiIsIm9yZyI6bnVsbCwidmVyaWZpZWQiOnt9LCJhbXIiOlsicGFzc3dvcmQiXSwiYWN0IjpudWxsLCJhdXRoX3RpbWUiOjE3OTIyMzM2NzQsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJlbWFpbCI6InBlcnNvbkBleGFtcGxlLmNvbSIsIm5vbmNlIjoibi0wUzZfV3pBMk1qIn0.avhfDFp_aUV5_1ssYzwDcIA7H6Waf19P0bn5GCg25FhLIZBGIlwc8HiUPGj1j26r21OkP4FQnS_jM1Ho3dHtKQ"

refresh_token
string
必填

单次使用。在会话结束前有效,每次刷新都会返回一个新的 token。

示例:

"N4yZTl6y24YKYq77X_SOrBn1q2Lit81WBQMOay7dq_IVfTnxyY8ZGcJk-6-fcmWW"

token_type
enum<string>
必填
可用选项:
Bearer
expires_in
integer
必填

距离访问 token 过期的秒数:最多 300 秒,若会话提前结束则更短。

必填范围: 0 <= x <= 300
示例:

299

session_id
string<uuid>
必填

这些 token 所属的会话,与 sid 声明的值相同。

示例:

"c9abf6cc-2d64-4bf2-b31e-a4d09a070ab1"

最后修改于 2026年11月7日