esteban
(Esteban)
July 29, 2020, 12:06am
22
Hi, we are experiencing a similar problem, but it happens intermittently.
Sometimes the signature will be valid and it will continue to work even if it wasn’t recently generated:
Other signatures always fail:
(this results in a modal containing these messages: “Joining meeting timeout.” and “Signature is invalid.”)
Both were generated using the same code (in ruby). We get approximately 1 valid signature for every 5-10 attempts.
tommy
(Tommy Gaessler)
July 30, 2020, 4:53pm
23
Hey @zhaowentao , @aitsidihammou.achraf ,
Happy to hear you got it working!
Thanks,
Tommy
tommy
(Tommy Gaessler)
July 30, 2020, 4:56pm
24
Hey @esteban ,
Double check your timezone settings are synced correctly:
Hi @vijayk.kannan ,
For the signature issue, make sure to use the system time and make sure the time syncs with world time.
Generate a signature by ZoomMtg.generateSignature. - Example of syncing your machine time using window 10
[e1b2c451-e93c-4238-b464-ead68f8cca69]
Example for using Mac
[image]
Generate a signature by customer web backend with sync server time.
We are currently investigation to see if there is a sync issue on our end as well. We’ll follow up as soon as we’re done lo…
Thanks,
Tommy
esteban
(Esteban)
July 30, 2020, 5:16pm
25
Hi Tommy, just double checked and it is just fine.
It’s very odd because the error message happens randomly.
What else could this be ? We have a deadline for this integration and we don’t have any other clues on what could be causing this.
Any help would be greatly appreciated !
Hi, I am also experiencing a similar problem, and when I traced back, I found that the JWT credentials should be created from the OAuth authenticated account.
Is that so?
My Meeting Signature →
esteban
(Esteban)
July 30, 2020, 7:47pm
27
Did you managed to show your issue Ashwin ?
Yes I am getting this issue. Do you know anything about that?
esteban
(Esteban)
July 30, 2020, 7:51pm
29
We’ve been trying to solve it without success… @tommy can you help us out here ? Your input would be great.
Ok, so I will tell you what problem I am having, may be you can get some idea
After the user connects their Zoom account with my app, and creating a new meeting they get this issue.
Now, how I was able to solve it partially? The JWT credentials should be from the same account which was connected earlier.
But this is not possible in the production env, that everyone creates a JWT app in their account.
@tommy help us out here.
esteban
(Esteban)
July 30, 2020, 11:37pm
31
Ashwin, just got this code from another post and it seems to solve the issue, I hope it solves your problem
as well.
require "base64"
module SignatureRoles
PARTICIPANT = 0
HOST = 1
end
def generate_signature(meeting_id:)
# Prevent time sync issue between client signature generation and Zoom
timestamp = (Time.now.to_f * 1000).round(0) - 30000
role = <logic for host or participant> ? SignatureRoles::HOST : SignatureRoles::PARTICIPANT
key = Rails.application.config.zoom.api_key
secret = Rails.application.config.zoom.api_secret
message = Base64.strict_encode64([key, meeting_id, timestamp, role].join)
hash = Base64.strict_encode64(OpenSSL::HMAC.digest("SHA256", secret, message))
Base64.strict_encode64([key, meeting_id, timestamp, role, hash].join("."))
end
I need the PHP version of this thing. Although the current method which I use to generate the signature was used from the samples code provided by the Zoom.
This is my current code to generate the signature
$role = 1; // Host role
$time = time() * 1000 - 40000;//time in milliseconds (or close enough)
$data = base64_encode($jwtApiKey . $meetingNumber . $time . $role);
$hash = hash_hmac('sha256', $data, $jwtApiSecret, true);
$_sig = $jwtApiKey . "." . $meetingNumber . "." . $time . "." . $role . "." . base64_encode($hash);
//return signature, url safe base64 encoded
$signature = rtrim(strtr(base64_encode($_sig), '+/', '-_'), '=');
tommy
(Tommy Gaessler)
August 3, 2020, 6:18pm
33
Hey @esteban ,
Using that code, did that solve the issue for you?
Thanks,
Tommy
tommy
(Tommy Gaessler)
August 3, 2020, 6:22pm
34
Hey @ashwin.parihar ,
ashwin.parihar:
I need the PHP version of this thing. Although the current method which I use to generate the signature was used from the samples code provided by the Zoom.
This is my current code to generate the signature
I see you are using the PHP sample on our docs . Are you saying it is not working?
ashwin.parihar:
After the user connects their Zoom account with my app, and creating a new meeting they get this issue.
Now, how I was able to solve it partially? The JWT credentials should be from the same account which was connected earlier.
But this is not possible in the production env, that everyone creates a JWT app in their account.
With the Web SDK and a set of JWT credentials, you can start and join meetings owned by the same account as the JWT App, and you can join external meetings not owned by the same account as the JWT App. You can’t start meetings that are not owned by the same account as the JWT App.
Does that make sense?
Thanks,
Tommy
system
(system)
Closed
August 10, 2020, 6:22pm
35
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.