RustamA
(Rustam)
November 4, 2020, 8:50pm
1
Description
I’m trying to create a meeting with SDK. It is working OK with accounts linked to the dev account.
However during publish app review process, reviewer always gets “Signature is Invalid” error.
I sent request to open the application for test purposes, and was able to replicate the problem for account which is not linked to the dev account
Error
errorCode: 3712
errorMessage: “Signature is invalid.”
method: “join”
result: “Invalid signature.”
status: false
Screenshots
Additional context
Development account id:
Signature:
tommy
(Tommy Gaessler)
November 6, 2020, 6:29pm
2
Hey @RustamA , happy to help!
Can you share the code you are using to generate the signature?
Also, is the meeting you are trying to start owned by the same account as the Web SDK?
Thanks,
Tommy
RustamA
(Rustam)
November 6, 2020, 6:46pm
3
Hello @tommy !
Please find below code for signature generation (backend, c#)
Meeting is created & started by different account (rustam.akimovv@outlook.com ) than account creating zoom app (s@treemple.com )
private static void AddSignature(ZoomMeeting meeting, int hostRole)
{
static long ConvertToTimestamp(DateTime value)
{
var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
var elapsedTime = value - epoch;
return (long)elapsedTime.TotalMilliseconds;
}
static long ToTimestamp (DateTime value) {
long epoch = (value.Ticks - 621355968000000000) / 10000;
return epoch;
}
var ts = (ToTimestamp(DateTime.UtcNow.ToUniversalTime()) - 30000).ToString();
var signature = GenerateToken(meeting.Id, ts, hostRole);
meeting.Signature = signature;
}
static string GenerateToken (long meetingNumber, string ts, int role) {
var message = $"{ApiKey}{meetingNumber}{ts}{role}";
var encoding = new ASCIIEncoding();
var keyByte = encoding.GetBytes (ApiSecret);
var messageBytesTest = encoding.GetBytes (message);
var msgHashPreHmac = System.Convert.ToBase64String (messageBytesTest);
var messageBytes = encoding.GetBytes (msgHashPreHmac);
using var hmacSha256 = new HMACSHA256 (keyByte);
var hashMessage = hmacSha256.ComputeHash (messageBytes);
var msgHash = System.Convert.ToBase64String (hashMessage);
var token = $"{ApiKey}.{meetingNumber}.{ts}.{role}.{msgHash}";
var tokenBytes = System.Text.Encoding.UTF8.GetBytes (token);
return System.Convert.ToBase64String (tokenBytes).TrimEnd (Padding);
}
tommy
(Tommy Gaessler)
November 9, 2020, 9:24pm
4
Hey @RustamA ,
That is indeed the issue. Checkout this thread for more info:
Hey @mayank.patel ,
We discourage asking customers to share their JWT Credentials with developers.
I do see the headache here how you can’t use OAuth to start meetings for a user via the Web SDK since the Web SDK can only start meetings owned by the same account as the JWT App.
I will share this feedback with our team and see if we can expand the Web SDK authentication to allow authorized users to start their own meetings. (CS-2206)
In the meantime, I suggest having the host of the meeting s…
Thanks,
Tommy
RustamA
(Rustam)
November 10, 2020, 7:20pm
5
Hello @tommy ,
Thank you for reply.
Can you please provide any updates about this yours comment:
I will share this feedback with our team and see if we can expand the Web SDK authentication to allow authorized users to start their own meetings. (CS-2206)
tommy
(Tommy Gaessler)
November 11, 2020, 7:05pm
6
Hey @RustamA ,
You are welcome!
No updates so far other than we are in the planning stages of developing this feature.
Thanks,
Tommy
system
(system)
Closed
December 12, 2020, 5:05am
7
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.