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

Agora RTM服务登录失败求助(错误码-10012、服务器返回码26)

Agora RTM服务登录失败求助(错误码-10012、服务器返回码26)

根据你提供的报错信息和代码,我梳理了几个关键的排查方向和修复建议,你可以逐一尝试:

1. 补全RTM登录的必填参数

你在初始化RTM Client时传入了uid,但调用login方法时只传递了token。按照Agora RTM SDK的要求,使用Token登录时必须明确指定uid,且这个uid必须和生成Token时使用的uid完全一致,否则会被服务器判定为无效请求。

修改前端的登录代码:

rtmClient.login({ uid: "10", token })

2. 检查Token生成逻辑与SDK版本适配

不同版本的Agora RTM Token构建工具参数可能有差异,比如部分新版本的SDK需要明确指定用户角色,或者使用buildTokenForUser而非buildToken方法。你可以对照后端使用的Agora SDK文档,调整Token生成代码:

// 示例(适配新版本SDK)
const token = RtmTokenBuilder.buildTokenForUser(
  APP_ID,
  APP_CERTIFICATE,
  uid,
  privilegeExpiredTs,
  RtmTokenBuilder.Role.RtmUser // 明确指定RTM用户角色
);

3. 修正Token的返回与解析逻辑

后端目前直接返回Token字符串:return res.json(token);,但纯字符串直接用res.json()返回可能导致前端response.json()解析失败(因为纯字符串不是标准JSON格式)。建议后端改为返回包含Token字段的JSON对象:

// 后端修改
return res.json({ token: token });

同时前端对应调整解析逻辑:

const responseData = await response.json();
rtmClient.login({ uid: "10", token: responseData.token })

4. 排查Agora控制台的服务配置

错误码26通常和Token无效或权限不足相关,你可以去Agora控制台确认以下几点:

  • 你的项目是否已经启用了RTM服务(部分新创建的项目默认未开启RTM)
  • 后端使用的AppID和证书是否属于同一个项目
  • 项目是否设置了区域限制,导致客户端无法连接到对应边缘节点

5. 验证服务器时间准确性

Token的有效性依赖于时间戳,如果你的后端服务器系统时间和UTC时间偏差过大,会导致Token被判定为过期或未生效。可以检查服务器的系统时间,确保和UTC时间同步。

另外,你可以先尝试使用Agora控制台生成的临时RTM Token测试登录,如果临时Token能成功登录,说明问题肯定出在后端的Token生成逻辑上,再针对性排查即可。


备注:内容来源于stack exchange,提问作者user26583655

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 12:24:49