You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Active Collab(托管版)认证仅获intent_id无法获取完整JWT问题

ActiveCollab API认证对接问题排查与解决

问题梳理

  1. 直接调用/issue-token端点时返回500错误,响应内容:
    {"type": "ValueError","message": "DOMDocument::loadXML(): Argument #1 ($source) must not be empty","code": 0}
    
  2. 按照托管版两步流程调用时,第一步https://activecollab.com/api/v1/external/login仅返回intent_id,未获取到预期的完整JWT,且后台未找到API权限相关设置,curl测试结果一致。

核心原因与解决方案

1. 托管版与自建版认证流程差异

直接调用/issue-token仅适用于自建部署版ActiveCollab,官方托管版必须走两步intent认证流程,你之前的第一步返回intent_id是正常行为,并非异常。

2. 托管版完整认证流程

第一步:获取intent_id

调用https://activecollab.com/api/v1/external/login传递邮箱和密码,返回intent_id(此步骤仅用于生成临时认证凭证):

curl -d "email=your_email@example.com&password=your_password" https://activecollab.com/api/v1/external/login --ssl-no-revoke

返回示例:

{"intent_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}

第二步:用intent_id换取JWT

调用https://app.activecollab.com/{你的客户编号}/api/v1/issue-token-intent,需设置Content-Type: application/json请求头,传递intent_id参数:

curl -X POST \
  https://app.activecollab.com/12345/api/v1/issue-token-intent \
  -H "Content-Type: application/json" \
  -d '{"intent_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}'

成功响应示例:

{"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "user_id": 123, "expires_at": 1699999999}

3. 500错误的根源

托管版环境下直接调用/issue-token会缺少租户标识等必要上下文参数,导致服务器端XML解析失败,触发你遇到的DOMDocument::loadXML()参数为空错误。

4. API权限说明

ActiveCollab没有单独的API权限开关,只要你的账号满足以下条件即可正常获取JWT:

  • 账号为系统管理员,或拥有至少一个项目的访问权限
  • 账号未被禁用/锁定
  • 邮箱、密码输入正确

额外排查点

如果第二步调用仍失败,检查:

  • {你的客户编号}是否正确(可从托管版访问URL提取,如https://app.activecollab.com/12345/...中的12345)
  • 请求头是否正确设置Content-Type: application/json,请求体是否为合法JSON格式
  • intent_id是否过期(有效期极短,需获取后立即调用第二步)

内容的提问来源于stack exchange,提问作者David Bremner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 00:22:50