Web SDK with SDK App returns invalid signature

Description
With the impending JWT App depreciation we are looking to move SDK App type.
I have been following the steps as provided here https://marketplace.zoom.us/docs/sdk/native-sdks/web and after generating SDK App type and using
SDK App Key and Secret - i am getting the Invalid Signature error.
The same code works with JWT App - but since JWT is being depreciated I am assuming SDK App Type should work ?

Browser Console Error

{
    "method": "join",
    "status": false,
    "result": "Invalid signature.",
    "errorMessage": "Signature is invalid.",
    "errorCode": 3712
}

Which Web Meeting SDK version?
Zoom Web SDK version 2.4.5

Meeting SDK Code Snippets
Not really code snippet issue i guess - the signature generation is being done the same way as on here
Generate Signature - PHP

function generate_signature ( $api_key, $api_secret, $meeting_number, $role){
  //Set the timezone to UTC
  date_default_timezone_set("UTC");
	$time = time() * 1000 - 30000;//time in milliseconds (or close enough)
	$data = base64_encode($api_key . $meeting_number . $time . $role);
	$hash = hash_hmac('sha256', $data, $api_secret, true);
	$_sig = $api_key . "." . $meeting_number . "." . $time . "." . $role . "." . base64_encode($hash);
	//return signature, url safe base64 encoded
	return rtrim(strtr(base64_encode($_sig), '+/', '-_'), '=');
}

As for joining the meeting

ZoomMtg.join({
                                        meetingNumber: meetConfig.meetingNumber,
                                        userName: meetConfig.userName,
                                        signature: meetConfig.signaure,
                                        apiKey: meetConfig.apiKey,
                                        userEmail: meetConfig.email,
                                        passWord: meetConfig.passWord,
                                        success: function (res) {
                                            console.log('Join Meeting Success');
                                        },
                                        error: function (res) {
                                            console.log(res);
                                        }
                                    });

Screenshots

Device (please complete the following information):

  • Device: Macbook Pro
  • OS: Monterey
  • Browser: Chrome
  • Browser Version Version 103.0.5060.114 (Official Build) (x86_64)

hi,
for the the SDK App you have to create a new funktion for the signature

(there is no php example - only js)

and for ZoomMtg.join there ist a new parameter

sdkKey: key;

Jürgen

1 Like

Hi,

I was able to generate signature for PHP using Firebase\JWT library.
Thank you for your help - I was able to implement the solution by changing the join parameters as well.

Great @codemanas17 ! Glad to hear you were able to generate a signature using PHP.

Thank you for sharing your insight @j.schoenemeyer :smiley: