问题描述
我们正在从 agora 提供的令牌服务器生成 agora 令牌,但令牌在生成后立即过期,它抛出 DYNAMIC-KEY-EXPIRY 错误代码 109,我尝试使用下面 SDK 中提供的 onRequestToken() 回调方法是代码片段
override fun onRequestToken() {
//this will be called when the token expires
//so generate new token and renew the existing token
runOnUiThread {
regeneratetoken()
}
}
并从服务器获取另一个令牌并使用 mRtcEngine.renewToken(token) 更新令牌 我们已经就此与 agora 团队联系过,但无法找到有时生成的令牌有效的问题,我们有两个帐户,一个是测试帐户,另一个是主帐户,当我们使用它工作一天左右的一个凭据时,我们需要每 2 天更改一次凭据 并且新生成的令牌在生成后即将到期 因此,如果有人遇到同样的问题并对此提供任何帮助,我们将不胜感激
解决方法
生成令牌时,可以在请求参数中设置令牌过期时间。这是令牌生成指南。 https://docs.agora.io/en/Video/token_server?platform=Android
如果您设置了过期时间但仍有问题,请告诉我。
,我们使用agora token server生成token,过期时间为3600
const { RtcTokenBuilder,RtmTokenBuilder,RtcRole,RtmRole } = require('agora-access-token');
const role = RtcRole.PUBLISHER;
const expireTimeInSeconds = 3600
const currentTimestamp = Math.floor(Date.now() / 1000)
const privilegeExpiredTs = currentTimestamp + expireTimeInSeconds
const generateAuthTokenToInititateCall = async (channel,cb) => {
const token = RtcTokenBuilder.buildTokenWithUid(appID,appCertificate,channel,role,privilegeExpiredTs);
cb({ "token": token,"channel": channel })
}
这是节点js代码片段
,有人能解决这个问题吗?尽管将到期时间设置为 3600 秒(从当前时间算起 1 小时),但仍会发生这种情况。