Description
I cannot join the meeting using Web SDK & Oauth app(ClientId, ClientSecret)
Error I receive : {method: ‘join’, status: false, result: ‘Invalid signature.’, errorMessage: ‘Signature is invalid.’, errorCode: 3712}
Browser Console Error
{method: ‘join’, status: false, result: ‘Invalid signature.’, errorMessage: ‘Signature is invalid.’, errorCode: 3712}
Which Web Meeting SDK version?
2.9.0
Additional context
The way I am generating signature on the backend :
private static string GenerateZoomSignatureForNewApps(string key, string secret, string meetingNumber, string role)
{
var header = new
{
alg = "HS256",
typ = "JWT"
};
var headerBytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(header));
var base64UrlHeader = Base64UrlEncode(headerBytes);
var iat = (long)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds - 400;
var expirationSecondsToAdd = 7200;
var exp = iat + expirationSecondsToAdd;
var payload = new
{
appKey = key,
sdkKey = key,
mn = meetingNumber,
role = role,
iat = iat,
exp = exp,
tokenExp = exp
};
var jsonPayload = JsonConvert.SerializeObject(payload);
var payloadBytes = Encoding.UTF8.GetBytes(jsonPayload);
var base64UrlPayload = Base64UrlEncode(payloadBytes);
var message = $"{base64UrlHeader}.{base64UrlPayload}";
var keyBytes = Encoding.UTF8.GetBytes(secret);
using var hmacsha256 = new HMACSHA256(keyBytes);
var signatureBytes = hmacsha256.ComputeHash(Encoding.UTF8.GetBytes(message));
var signature = Base64UrlEncode(signatureBytes);
return signature;
static string Base64UrlEncode(byte[] input)
{
string base64 = Convert.ToBase64String(input);
return base64.Replace("+", "-").Replace("/", "_").TrimEnd('=');
}
}
frontend:
ZoomMtg.join(
{
meetingNumber: data.meetingNumber,
userName: data.userName,
signature: data.signature,
sdkKey: data.clientId,
userEmail: data.userEmail,
passWord: data.passWord,
success: function (res) {