Web Agora.io DYNAMIC_KEY_EXPIRED

Posted

技术标签:

【中文标题】Web Agora.io DYNAMIC_KEY_EXPIRED【英文标题】: 【发布时间】:2020-06-25 09:33:17 【问题描述】:

我正在使用 c# 和 mvc。

我使用此代码生成令牌并成功生成。但是在使用 .join() 加入频道时生成令牌后,它会返回 DYNAMIC_KEY_EXPIRED。 我使用了“AgoraRTCSDK-3.1.0.js”

我使用https://github.com/AgoraIO/Tools/blob/master/DynamicKey/AgoraDynamicKey/csharp生成动态令牌

如果有人对 Agora.io 有经验,请帮助我。

示例代码是..

AccessToken token = new AccessToken(apiKey, appCertificate, channelName, "0");
token.addPrivilege(Privileges.kJoinChannel, _expiredTs);
token.addPrivilege(Privileges.kPublishAudiostream, _expiredTs);
token.addPrivilege(Privileges.kPublishVideoStream, _expiredTs);
string strToken = token.build();

public string build()
    
        this._messageRawContent = Utils.pack(this.message);
        this._signature = generateSignature(_appCertificate
                , _appId
                , _channelName
                , _uid
                , _messageRawContent);

        this._crcChannelName = Crc32CAlgorithm.Compute(this._channelName.GetByteArray());
        this._crcUid = Crc32CAlgorithm.Compute(this._uid.GetByteArray());

        PackContent packContent = new PackContent(_signature, _crcChannelName, _crcUid, this._messageRawContent);
        byte[] content = Utils.pack(packContent);
        return getVersion() + this._appId + Utils.base64Encode(content);
    

【问题讨论】:

您为令牌设置的到期时间是多少? uint _expiredTs = 0; 【参考方案1】:

每当您为 Agora 应用程序生成令牌时,您需要记住过期时间是按时间戳计算的(自 1970 年以来的时间),因此您需要确保将过期时间设置为 currentTime + expirationTimeInSeconds

在上面的示例中,您将过期时间传递为​​ 0,这会生成一个已被视为过期的令牌。

考虑使用:

  // set a expiration time of 1 hour in seconds
  let expireTime = 3600;

  // calculate current time in seconds
  const currentTime = Math.floor(Date.now() / 1000);

  // calculate privilege expire time
  const privilegeExpireTime = currentTime + expireTime;

【讨论】:

我按照您的指示进行操作,但在生成有效令牌时仍然遇到问题....您知道 agora io 是否已更改任何内容吗?谢谢 什么都没有改变,同样的逻辑仍然适用。我建议使用您可以提供的任何代码提出一个新问题,以便团队可以帮助您。

以上是关于Web Agora.io DYNAMIC_KEY_EXPIRED的主要内容,如果未能解决你的问题,请参考以下文章

Web Agora.io DYNAMIC_KEY_EXPIRED

agora.io 是不是可以同时托管多个流?

设置 agora.io 录制服务器时出现错误:20,stat_code:3

如何在 URL 中嵌入 App ID 和 Channel ID (Agora.io)

Agora 灵活课堂 - 如何处理退出课堂事件?

错误:包 io.agora.rtm 不存在