网页 Agora.io DYNAMIC_KEY_EXPIRED
Web Agora.io DYNAMIC_KEY_EXPIRED
我正在使用 c# 和 mvc。
我用这段代码生成token,生成成功。但是在使用 .join() 加入频道时生成令牌后,它 return 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);
}
当你为 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;
我正在使用 c# 和 mvc。
我用这段代码生成token,生成成功。但是在使用 .join() 加入频道时生成令牌后,它 return 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);
}
当你为 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;