Web Embedded Meeting SDK errorCode: 3712 reason: "Signature is invalid."

Description
I’m trying to make a Component view for my customer website.
I’ve created a Meeting using JWT with server-to-server API requests with no problem. The next step is to join this meeting and that’s where I have problems… I’ve dug into Developers Forum where I’ve found out that I need to use JWT Key and Secret for Web SDK so I created a signature with data as described in the documentation. I’ve checked generated signature in the jwt.io debugger tool and everything looks proper for me…
Here’s what shows the payload block:
{
“sdkKey”: “CPoOb3n6QcWK”,
“mn”: 81722154508,
“role”: 1,
“iat”: 1650463468,
“exp”: 1650470668,
“appKey”: “CPoOb3n6QQ”,
“tokenExp”: 1650470668
}
Also, it says “Signature Verified”. (tried to upload an image but apparently, I have no permission to upload images yet)…

While trying to join the meeting I get the “Signature is invalid.” error.

Browser Console Error

  1. errorCode: 3712
  2. reason: “Signature is invalid.”
  3. type: “JOIN_MEETING_FAILED”

Which Web Meeting SDK version?
@zoomus/websdk”: “^2.3.5”

Meeting SDK Code Snippets
No snippets were used.

To Reproduce(If applicable)
Trying to connect via js .join method:
let joinZoomOptions = {
sdkKey: response.data.apiKey,
signature: response.data.signature,
meetingNumber: response.data.meetingNumber,
password: response.data.password,
userName: response.data.userName,
}

if (response.data.zak) {
joinZoomOptions.zak = response.data.zak
}

v.zoomClient.join(joinZoomOptions)

Device (please complete the following information):
MacBook Pro 16’ 2019
macOS 12.2.1
Chrome 100.0.4896.88 (Official Build) (x86_64)

Can you please help me out? I’ve spent several hours fighting this problem and trying to generate signature with different methods and different keys (JWT and SDK)…

Hi there! @fedorov.danil

Thanks for reaching out to the Zoom Developer Forum, I am happy to help here!
Have you looked into our docs here on how to generate a valid Signature?

Also, here is a link to our sample app that could also help you as a guide for your app:

Hope this helps,
Elisa

Thanks for your reply. I’ve tried the PHP example code from the first link. And it returns a signature that looks like this:
Q1BvT2IzbjZRY1dLVFlmNlYwVGZTUS44NzE2MTIwNjkzMC4xNjUwOTMxOTYwMDAwLjEuRW5RZ2RZcmEyVnlVZjVST0VGdjNpcnBDdUpsTzJTcnFSbjBxR2QwaGVyWT0
Which I believe doesn’t looks like JWT token, and it also gives the same error: “Signature is invalid”.

Also, if we check the signature example from the second link and debug it with jwt.id debugger then we’ll see that it’s Payload is:
{
“sdkKey”: “abc123”,
“mn”: “123456789”,
“role”: 0,
“iat”: 1646937553,
“exp”: 1646944753,
“appKey”: “abc123”,
“tokenExp”: 1646944753
}

And, it looks the very same as the signature I’ve generated with my PHP code. Here’s the example of JWT token generated with my code and jwt.io debugger results:

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzZGtLZXkiOiJDUG9PYjNuNlFjV0tUWWY2VjBUZlNRIiwibW4iOjg3MTYxMjA2OTMwLCJyb2xlIjoxLCJpYXQiOjE2NTA5MzI4NjksImV4cCI6MTY1MDk0MDA2OSwiY

HEADER:ALGORITHM & TOKEN TYPE
{
“typ”: “JWT”,
“alg”: “HS256”
}

PAYLOAD:DATA
{
“sdkKey”: “CPoOb3n6QcWK”,
“mn”: 87161206930,
“role”: 1,
“iat”: 1650932869,
“exp”: 1650940069,
“appKey”: “CPoOb3n6QcWK”,
“tokenExp”: 1650940069
}

Hey @fedorov.danil so are you not able to generate the signature using the sample app that I have shared with you?

So, I’ve tried to create a signature with an example app that you’ve shared.
As I can see the logic is the same I used to create my token. And it suggests using SDK keys instead of JWT keys. So, in case I use the JWT key (the same key I used to create a meeting with an API request) it returns “Signature is invalid”. And, in case I use SDK keys it returns:
errorCode: 200
reason: “Fail to join the meeting.”

So both options aren’t working for me…

P.S. Here’s why I’ve used the JWT token and not an SDK token - Zoom sample-web-app "Signature is invalid" 3712 error code - #3 by wizard_files3

And another strange thing happened… I’ve checked API Call Logs and tried to use the start_url of a meeting that I created via create meeting API and it says “Sorry… Wrong conference ID. (3 001)”. That looks weird to me… Here’s a meeting ID that fails 84015368006. Actually, all meetings created with API requests are failing with the same error.