API 参考 / auth
POST /api/v1/auth/login · login
登录成功通过 Set-Cookie gf_session 下发不透明会话(HttpOnly; Secure; Domain=.workflow.games; SameSite=Lax)。响应体只含用户上下文,不含 token 明文。公开端点。
401 与 403 是两件事,客户端必须分开处理(B-00265):401 = 邮箱或密码不正确; 403 = 凭据正确但账号已被管理员禁用,detail 为「账号已被禁用,请联系管理员」。 此前合同只声明 401,按合同生成的客户端天然不知道要区分它——前端于是把两者混成一句 「邮箱或密码不正确」,被禁用户会以为自己记错密码,去走找回密码、改新密码、再登录, 依然是同一句,陷入死循环还白白消耗一次密码重置。403 不构成账号枚举泄漏: service 是先验密码通过才判 status 的。
失败限速(B-00263):登录失败按账号 + 来源 IP 双维各自计数,超阈值返回 429 + Retry-After。只有失败消费额度、成功立刻清零,正常登录不受影响;额度随时间自动回填, 不锁死账号(无需管理员解锁)。阈值由平台超管在 PUT /admin/settings/login-throttle 运行时调整。
公开端点,无需鉴权。
email(必填)password(必填)userId(必填)email(必填)emailVerified(必填)401:Problem 错误响应403:Problem 错误响应429:Problem 错误响应curl -X POST "https://workflow.games/api/v1/auth/login" \
-H "content-type: application/json" \
--data '{"email":"[email protected]","password":"示例文本"}'HTTP/1.1 200
{
"userId": "018f3c2e-0000-7000-8000-000000000000",
"email": "[email protected]",
"emailVerified": true
}合同真值:OpenAPI 3.1(0.1.0)。
相关:Agent 接入指南 · 使用指南 · API 参考索引