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

Kotlin环境下Agora实时消息服务使用控制台临时令牌登录报LOGIN_ERR_INVALID_TOKEN

问题引发原因
  • 令牌有效期到期:Agora控制台生成的RTM临时令牌默认有效期仅24小时,生成后超出时效使用会直接返回无效错误
  • App ID不匹配:生成临时令牌时选择的项目App ID,和初始化mRtmClient时传入的App ID不一致
  • Uid不匹配:生成临时令牌时填写的用户ID,和调用login方法时传入的uid参数内容不匹配,注意字符串类型的Uid大小写、前后空格、特殊字符都需要完全一致
  • 令牌字符串残缺:复制粘贴临时令牌时多带入了空格、换行符,或者漏抄了部分字符,导致传入的token_参数本身内容错误
  • 服务类型不匹配:错用了Agora RTC(实时音视频)服务的临时令牌登录RTM服务,两类服务的令牌规则不互通
  • SDK版本兼容问题:当前使用的RTM SDK版本过低,无法兼容新版控制台生成的令牌规则,也会触发无效报错
排查解决步骤
  • 先排除时效问题:回到Agora控制台重新生成一个全新的RTM临时令牌,替换原有令牌后立刻测试登录
  • 核对App ID一致性:确认初始化RtmClient时传入的App ID,和生成临时令牌的项目App ID完全相同
  • 核对Uid一致性:确认生成临时令牌时填写的Uid,和代码中login方法传入的uid参数完全一致
  • 校验参数正确性:调用login前增加日志打印,确认token_和uid的实际值和预期一致,示例如下:
// 增加参数校验日志
logValue("登录参数校验:token=$token_ , uid=$uid")
mRtmClient!!.login(token_, uid, object : ResultCallback<Void?> {
            override fun onSuccess(responseInfo: Void?) {
                logValue("login Success ")
                joinChannel()
            }

            override fun onFailure(errorInfo: ErrorInfo) {  
                logValue("login failed "+ errorInfo.errorDescription) 
            }
        })
  • 确认令牌生成入口:生成临时令牌时要选择RTM服务的专属生成入口,不要错选成RTC服务的令牌入口
  • 升级SDK版本:如果当前使用的RTM SDK版本低于1.5.0,建议升级到官方最新稳定版后再测试登录逻辑

内容的提问来源于stack exchange,提问作者karteek thati

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:36:06