Skip to content

LongBridge API 401004 错误 #877

@ohmanymoneygomyhome-creator

Description

LongBridge API 401004 错误问题总结

问题描述

使用 Python SDK (longbridge v4.0.5) 连接 LongBridge OpenAPI 时,所有 API 调用均返回 401004 token invalid 错误。

───

环境信息

项目
SDK版本 longbridge 4.0.5
Python版本 3.12
操作系统 Windows
App Key 9931b97275f8ed93c4bc689b10ed2575
账户ID 21331930
账户类型 Paper Trading (模拟交易)

───

错误详情

OpenApiException: (kind=ErrorKind.OpenApi, code=401004, trace_id=xxx) token invalid

───

已尝试的排查

  1. ✅ 确认 Token 格式正确(JWT,带 m_ 前缀)
  2. ✅ Token Payload 包含完整字段(aid, ak, bl 等)
  3. ✅ 使用 Config.from_apikey_env() 初始化
  4. ✅ 使用 Config.from_apikey() 直接传参
  5. ✅ 确认 App Key、App Secret、Access Token 均已正确设置
  6. ✅ DNS 解析正常,服务器可连接
  7. ✅ SDK 能成功创建 QuoteContext 和 TradeContext
  8. ❌ 所有 API 调用均返回 401004

───

关键发现

  1. Token格式:获取的 Token 是 OAuth 2.0 格式(RS256 签名,含 bl=3 字段)
  2. SDK认证方式:Config.from_apikey_env() 使用 HMAC-SHA256 签名验证
  3. 认证协议不匹配:OAuth Token (RS256) 与 SDK 的 HMAC 认证方式不兼容
  4. 历史记录:用户表示该 Token 格式之前可以正常使用,刷新后出现问题

───

Token Payload 示例

{
"iss": "longbridge",
"sub": "access_token",
"exp": 1783420934,
"iat": 1775644934,
"ak": "9931b97275f8ed93c4bc689b10ed2575",
"aid": 21331930,
"ac": "lb_papertrading",
"mid": 21291962,
"sid": "qJn9uVNDqElVfnBtFANdPA==",
"bl": 3,
"uh": 0,
"ik": "lb_papertrading_21331930"
}

───

猜测原因

  1. 服务器端可能对 OAuth Token 的验证策略做了更新
  2. 或需要使用 OAuth 的 client_id 通过 Config.from_oauth() 方式认证

───

需要的帮助

  1. 确认 Python SDK 是否支持 OAuth Bearer Token 方式?
  2. 如果支持,Config.from_oauth() 需要什么参数?
  3. 或者需要重新生成什么格式的 Token 才能用于 SDK 的 HMAC 认证?

───

错误截图/Trace ID:afc70f472bcfaab577ab1fbec0dee3b4(仅供参考)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions