认证常见问题
如何判断 brokerage session 已认证?
Section titled “如何判断 brokerage session 已认证?”调用:
POST /iserver/auth/status如果返回中 authenticated=true 且 connected=true,通常表示 brokerage session 已经可用。交易、行情和多数 /iserver endpoint 才有继续请求的基础。
session 能保持多久?
Section titled “session 能保持多久?”官方说明中,session 最长可保持约 24 小时,并会在与你最近连接区域相关的午夜重置。实际运行中,服务器维护、网络断开、Gateway 重启或竞争会话都可能提前让 session 失效。
如果几分钟没有请求,session 也可能因为空闲而超时。
如何防止 session 空闲超时?
Section titled “如何防止 session 空闲超时?”定期调用:
POST /tickle常见做法是大约每 60 秒调用一次。/tickle 会返回 session 信息和 /iserver 认证状态。
如果 /tickle 返回正常,但认证状态仍是 authenticated=false,说明保活链路可用,交易会话仍未恢复。此时应重新检查 /iserver/auth/status,必要时再调用 /iserver/auth/ssodh/init。
connected=true 但 authenticated=false 怎么办?
Section titled “connected=true 但 authenticated=false 怎么办?”这通常表示 Gateway 和 IBKR 后端仍有连接,但 brokerage session 没有认证或已经超时。可以调用:
POST /iserver/auth/ssodh/init请求体中通常包含 publish=true。是否传 compete=true 要谨慎,因为它可能影响同一用户名在其他平台的 brokerage session。
默认建议先用 compete=false。只有确认 API 会话要接管交易会话,并且不会影响正在使用的 TWS、IB Gateway 或移动端时,才考虑 compete=true。
可以不使用 2FA 吗?
Section titled “可以不使用 2FA 吗?”不可以。Client Portal 访问敏感账户、资金和交易能力,双因素认证是必需的。API 不能绕过 2FA。
可以自动登录 Gateway 吗?
Section titled “可以自动登录 Gateway 吗?”个人客户没有官方自动化 Gateway brokerage session 登录机制。IBKR 也不建议使用第三方工具绕过或自动化登录过程,因为这会带来账户安全风险。
为什么登录 Gateway 后 TWS 被挤掉?
Section titled “为什么登录 Gateway 后 TWS 被挤掉?”同一用户名只能有一个 active brokerage session。TWS、IB Gateway、Client Portal、IBKR Mobile 和 Client Portal API 都可能竞争同一用户名的交易会话。
要并行使用,通常需要创建第二用户名,并确认该用户名拥有所需账户、交易和行情权限。
Paper 账户怎么登录?
Section titled “Paper 账户怎么登录?”使用 Paper Trading 专用用户名。Gateway 登录页面没有 Live / Paper 切换滑块。
Paper 用户名可以从 Client Portal 的 Paper Trading Account 设置页面查看,也可以重置 Paper Trading 密码。
/iserver/reauthenticate 还能用吗?
Section titled “/iserver/reauthenticate 还能用吗?”官方文档中把 /iserver/reauthenticate 标为 deprecated。需要重新初始化 brokerage session 时,应优先使用 /iserver/auth/ssodh/init。
为什么 HTTP 请求成功但业务失败?
Section titled “为什么 HTTP 请求成功但业务失败?”HTTP 成功只代表请求到达并收到响应。业务是否成功还要看:
authenticatedconnectedcompetingmessage- endpoint 返回的错误码和错误文本
- 订单状态、确认信息和警告
交易系统不能只用 HTTP 状态码判断认证和下单是否成功。