Веб-сайт Agora.io DYNAMIC_KEY_EXPIRED

Я использую 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);
    }

person mahesh    schedule 25.06.2020    source источник
comment
Какое время истечения срока действия вы устанавливаете для токенов?   -  person vineeth srini    schedule 29.06.2020
comment
uint _expiredTs = 0;   -  person mahesh    schedule 29.06.2020


Ответы (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;
person Hermes    schedule 23.07.2020