# How do I generate a valid signature from PHP?

**URL:** <https://devforum.zoom.us/t/how-do-i-generate-a-valid-signature-from-php/74126>\
**Category:** Web\
**Created:** [August 12, 2022, 1:52pm UTC](https://devforum.zoom.us/t/how-do-i-generate-a-valid-signature-from-php/74126 "2022-08-12T13:52:59Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![miyuru](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/miyuru/32/33022_2.png) [@miyuru](https://devforum.zoom.us/u/miyuru)\
**Post date:** [August 12, 2022, 1:52pm UTC](https://devforum.zoom.us/t/how-do-i-generate-a-valid-signature-from-php/74126/1 "2022-08-12T13:52:59Z")

</div>

Hi,  
i used php code to generate the signature

```auto
public static function generate_signature($api_key, $api_secret, $meeting_number, $role)
    {
        //Set the timezone to UTC
        date_default_timezone_set(config('app.timezone'));
        $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), '+/', '-_'), '=');
    }

```

but i received this error

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

I used SDK Key & SDK Secret. When I use JWT credentials I’m getting this error

{method: ‘join’, status: false, result: null, errorMessage: ‘Sdk key length error, must 36’, errorCode: 4003}

---

<div class="post-metadata">

**Author:** ![j.schoenemeyer](https://avatars.discourse-cdn.com/v4/letter/j/f9ae1b/32.png) [@j.schoenemeyer](https://devforum.zoom.us/u/j.schoenemeyer)\
**Post date:** [August 12, 2022, 3:10pm UTC](https://devforum.zoom.us/t/how-do-i-generate-a-valid-signature-from-php/74126/2 "2022-08-12T15:10:45Z")

</div>

this is the wrong version for SDK JWT signature

you can easily distinguish the signature routines:

- JWT Signature (deprecated) → time in **Milliseconds**
- SDK JWT Signature → time in **Seconds**

use:

> [@Can't generate correct web sdk signature in Laravel](https://devforum.zoom.us/t/cant-generate-correct-web-sdk-signature-in-laravel/72584/13):
>
> Yes, ofcourse. We were able to generate the working signature using this script: public function generateJWTKey(Request $request) { $key = $this-\>zoom\_api\_key; $secret = $this-\>zoom\_api\_secret; $meeting\_number = $request-\>meetingNumber; $role = $request-\>role; $token = array( "sdkKey" =\> $key, "mn" =\> $meeting\_number, "role" =\> $role, "iat" =\> time(), "exp" =\> time() + 3600, //60 seconds as su…

Jürgen

---

<div class="post-metadata">

**Author:** ![miyuru](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/miyuru/32/33022_2.png) [@miyuru](https://devforum.zoom.us/u/miyuru)\
**Post date:** [August 13, 2022, 3:56am UTC](https://devforum.zoom.us/t/how-do-i-generate-a-valid-signature-from-php/74126/3 "2022-08-13T03:56:35Z")

</div>

Thank you so much @j.schoenemeyer I was looking for a solution for days. I am glad this issue was solved now!

---

<div class="post-metadata">

**Author:** ![donte.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/donte.zoom/32/24412_2.png) [@donte.zoom](https://devforum.zoom.us/u/donte.zoom)\
**Post date:** [August 23, 2022, 6:32pm UTC](https://devforum.zoom.us/t/how-do-i-generate-a-valid-signature-from-php/74126/4 "2022-08-23T18:32:26Z")

</div>

@j.schoenemeyer,

Thank you for sharing your solution for generating a valid signature from PHP!

---

<div class="post-metadata">

**Author:** ![rakhap](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/rakhap/32/36468_2.png) [@rakhap](https://devforum.zoom.us/u/rakhap)\
**Post date:** [September 12, 2022, 3:08am UTC](https://devforum.zoom.us/t/how-do-i-generate-a-valid-signature-from-php/74126/5 "2022-09-12T03:08:19Z")

</div>

how about sdk 2.7.0 version?

---

<div class="post-metadata">

**Author:** ![rakhap](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/rakhap/32/36468_2.png) [@rakhap](https://devforum.zoom.us/u/rakhap)\
**Post date:** [September 12, 2022, 3:09am UTC](https://devforum.zoom.us/t/how-do-i-generate-a-valid-signature-from-php/74126/6 "2022-09-12T03:09:15Z")

</div>

how about sdk 2.7.0 version generate from php? any example? thanks before.

---

<div class="post-metadata">

**Author:** ![j.schoenemeyer](https://avatars.discourse-cdn.com/v4/letter/j/f9ae1b/32.png) [@j.schoenemeyer](https://devforum.zoom.us/u/j.schoenemeyer)\
**Post date:** [September 12, 2022, 5:29am UTC](https://devforum.zoom.us/t/how-do-i-generate-a-valid-signature-from-php/74126/7 "2022-09-12T05:29:02Z")

</div>

2.7.0 uses always SDK JWT Signature , JWT Signature is not supportet anymore

> ## version 2.7.0
> 
> ## General
> 
> ### Removed
> 
> 1. API Key property. [Migrate to SDK Key for versions 2.7.0 and above](https://marketplace.zoom.us/docs/guides/build/jwt-app/jwt-app-migration/#jwt-app-type-to-sdk-app-type-migration)

if you have implementated SDK JWT Signature for versions before 2.7.0, there is no difference

---

<div class="post-metadata">

**Author:** ![donte.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/donte.zoom/32/24412_2.png) [@donte.zoom](https://devforum.zoom.us/u/donte.zoom)\
**Post date:** [September 12, 2022, 8:58am UTC](https://devforum.zoom.us/t/how-do-i-generate-a-valid-signature-from-php/74126/8 "2022-09-12T08:58:48Z")

</div>

@rakhap ,

@j.schoenemeyer is correct, there is no difference , you should be able use the same code to generate a SDK JWT signature for 2.7.0.

---

<div class="post-metadata">

**Author:** ![rakhap](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/rakhap/32/36468_2.png) [@rakhap](https://devforum.zoom.us/u/rakhap)\
**Post date:** [September 16, 2022, 8:54am UTC](https://devforum.zoom.us/t/how-do-i-generate-a-valid-signature-from-php/74126/9 "2022-09-16T08:54:44Z")

</div>

can you help? I have successfully joined to zoom, but the camera can’t open with an error like this  
 ![err-zoom-sdk](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/0/5/05f36a9018c46d4f943c2b85b0e2008e5d76c93e.png)

i’m using Web SDK 2.7.0 Component View

thanks

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/1/614bdd549b610bbaa46ff934617683a02bdaa03c.png) [@system](https://devforum.zoom.us/u/system)\
**Post date:** [October 16, 2022, 6:54pm UTC](https://devforum.zoom.us/t/how-do-i-generate-a-valid-signature-from-php/74126/10 "2022-10-16T18:54:54Z")

</div>

Closed on October 16, 2022, 6:54pm UTC

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
