proxy-auth.md 3.4 KB

企查查与DeepSeek代理Token自动恢复

版本1.0.1,优化时间2026-10-27(Asia/Shanghai)。正式企查查三接口、DeepSeek普通JSON/流式调用及复用它们的部署检查均支持此流程。

处理流程

  1. 先使用现有URL中的proxyToken。有效时直接调用,不登录DMS,也不要求新增配置。
  2. 仅在代理返回外层JSON业务码212时确认Token失效;支持HTTP成功响应及401/403响应中的同一业务码。权限码201、企查查Status 115、无明确212的HTTP错误、网络错误和生成中断均不触发刷新。
  3. 复用项目现有DMS认证配置和登录实现,获取短期Token。配置为主机加AUTH_PORT和DMS_PORT时,使用认证端口的/oauth/api/user/login;显式/proxy_dms及DMS_LOGIN_URL沿用现有规则,不猜测新的登录地址。登录表单仍为项目已使用的userName/password/clientId/serviceId,不执行栏目、模型或业务数据操作。
  4. 新Token仅保存在进程内,同一配置路径、同一代理协议/主机/端口的企查查和模型请求可复用。并发失效请求共用一次刷新;不同代理地址不共享缓存Token。只替换URL中的Token值,其余query原始编码/顺序、QCC签名和时间戳、业务参数、模型payload及Bearer头保持。
  5. 当前请求最多重放一次。登录失败或新Token仍被拒绝时,30秒内不再重复登录;后续请求可重新尝试。Token没有已验证的过期时间契约,因此不猜测TTL,后续明确失效再刷新。重启进程会清空缓存,恢复从配置Token开始。

配置及故障边界

无需改写现有.env,也没有新的必填环境变量。刷新复用已有DMS_BASE_URL、AUTH_PORT、DMS_PORT、DMS_USERNAME、DMS_PASSWORD及可选DMS_LOGIN_URL。实际生效值仍按现有配置加载优先级确定;仅有静态DMS_TOKEN而没有可登录账号/密码时,不能自动生成新Token。现有Token有效时,缺少DMS登录信息不会影响正常代理请求。

刷新失败报告proxy_token_refresh_failed,刷新后再次被拒绝报告proxy_token_invalid;模型包装层可能带model_前缀。日志和部署检查仅保留固定错误码,不输出Token、账号密码、完整URL或响应正文。DMS登录拒绝重定向并沿用有限超时,失败不会伪造成空政策或正常回答。

DeepSeek流式请求只在输出模型内容之前识别代理拒绝并重试。正常SSE仍按原字节增量读取;一旦已收到正文,后续断流、格式错误或取消不会触发认证重放,避免重复输出或拼接两次回答。普通模型JSON严格解析结果在本次传输内复用,避免刷新检测增加第二次解析。

已验证范围

本地回环HTTP和合成凭据覆盖有效初始Token、明确失效、短Token再次失效、两类服务共享、并发单次登录、失败冷却、权限/供应商错误、401/403、重定向拒绝、参数/签名保持、分片JSON、流式首段及时送达、断流和取消不重放。测试逐次核对临时.env字节不变。

本轮未调用线上代理或DMS,未改实际.env,没有验证生产账号权限、短Token对各代理服务的授权或实际有效期。生产联调、打包和部署须在用户核对全部优化清单后另行进行。配置连接契约见DMS配置,已有检查命令见部署操作指南。