We needed a new video chat application that will replace the existing XMPP server and found Agora.io as suitable substitute. While migrating from nodejs to Angular, I encountered some conversion issues for token generation.
Github Resourse: Tools/DynamicKey/AgoraDynamicKey/nodejs at master · AgoraIO/Tools · GitHub
Nodejs crypto: crypto.createHmac is not a function
var encodeHMac = function (key, message) {
return crypto.createHmac('sha256', key).update(message).digest();
};
solution:
var encodeHMac = function (key, message) {
return crypto.HmacSHA256(message, key)
};
Error: "TypeError: The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type object"
var AccessTokenContent = function (options) {
options.pack = function () {
var out = new ByteBuf();
return out.putString(options.signature)
.putUint32(options.crc_channel)
.putUint32(options.crc_uid)
.putString(options.m).pack();
}
return options;
}
solution:
var AccessTokenContent = function (options) {
options.pack = function () {
var out = new ByteBuf();
return out.putString(options.signature.words)
.putUint32(options.crc_channel)
.putUint32(options.crc_uid)
.putString(options.m).pack();
}
return options;
}