# Join meeting timeout. No permission

**URL:** <https://devforum.zoom.us/t/join-meeting-timeout-no-permission/70597>\
**Category:** Web\
**Created:** [June 16, 2022, 5:15am UTC](https://devforum.zoom.us/t/join-meeting-timeout-no-permission/70597 "2022-06-16T05:15:00Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![chaitanyasondur](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chaitanyasondur/32/38506_2.png) [@chaitanyasondur](https://devforum.zoom.us/u/chaitanyasondur)\
**Post date:** [June 16, 2022, 5:15am UTC](https://devforum.zoom.us/t/join-meeting-timeout-no-permission/70597/1 "2022-06-16T05:15:01Z")

</div>

I am trying to join a zoom meeting that I have created. While joining, it shows a popup - Join Meeting timeout: No permission. I think the problem is that I am generating the wrong signature. Can someone help me out with this?

{  
method: ‘join’,  
status: ‘false’,  
result: ‘No permission’,  
errorMessage: ‘No permssion.’,  
errorCode: 3713  
}

I am working with SDK version 2.4.5

import React from ‘react’  
import { useEffect } from ‘react’;  
import { ZoomMtg } from ‘@zoomus/websdk’;  
const KJUR = require(‘jsrsasign’)

var apiKey = ‘[REDACTED]’  
var apiSecret = ‘[REDACTED]’  
var meetingNumber = ‘[REDACTED]’  
var leaveUrl = ‘[http://localhost:3000](http://localhost:3000)’;  
var userName = ‘WebSDK’  
var userEmail = ‘test@gmail.com’;  
var passWord = ‘y5gjZB’;  
var signature = ‘’  
var role = 0;

function generateSignature(sdkKey, sdkSecret, meetingNumber, role) {

const iat = Math.round((new Date().getTime() - 30000) / 1000)  
const exp = iat + 60 \* 60 \* 2  
const oHeader = { alg: ‘HS256’, typ: ‘JWT’ }

const oPayload = {  
sdkKey: sdkKey,  
mn: meetingNumber,  
role: role,  
iat: iat,  
exp: exp,  
appKey: sdkKey,  
tokenExp: iat + 60 \* 60 \* 2  
}

const sHeader = JSON.stringify(oHeader)  
const sPayload = JSON.stringify(oPayload)  
const sdkJWT = KJUR.jws.JWS.sign(‘HS256’, sHeader, sPayload, sdkSecret)  
return sdkJWT  
}  
signature = generateSignature(apiKey, apiSecret, meetingNumber, role);  
console.log(signature)

const Zoom = () =\> {

```
useEffect(() => {
    showZoomDiv();
    ZoomMtg.setZoomJSLib('https://source.zoom.us/2.4.5/lib', '/av');
    ZoomMtg.preLoadWasm();
    ZoomMtg.prepareJssdk();
    initiateMeet();
}, [])

const showZoomDiv = () => {
    document.getElementById("zmmtg-root").style.display = "block";
}

const initiateMeet = () => {
    ZoomMtg.init({
        leaveUrl: leaveUrl,
        isSupportAV: true,
        success: (success) => {
            console.log(success)

            ZoomMtg.join({
                signature: signature,
                meetingNumber: meetingNumber,
                userName: userName,
                apiKey: apiKey,
                userEmail: userEmail,
                passWord: passWord,
                success: (success) => {
                    console.log(success)
                },
                error: (error) => {
                    console.log(error)
                }
            })
        },
        error: (error) => {
            console.log(error)
        }
    })
}

return (
    <div className='App'>Zoom</div>
)

```

}

export default Zoom

**Screenshots**

**Device (please complete the following information):**

- Device: HP Pavillon Laptop
- OS: Windows 10
- Browser: Chrome
- Browser Version 102.0.5005.115

---

<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:** [June 16, 2022, 3:49pm UTC](https://devforum.zoom.us/t/join-meeting-timeout-no-permission/70597/2 "2022-06-16T15:49:19Z")

</div>

Hi, @chaitanyasondur.

Welcome to the Developer Forum. Based on the snippet, it looks like the signature is being generated correctly. As a sanity check, have you validated the signature is correct? If not, you can do so at [JWT.io](http://JWT.io). Please see this post for guidance on debugging your signature here :

> [@How to determine role value for signature](https://devforum.zoom.us/t/how-to-determine-role-value-for-signature/69170/2):
>
> Hi, @_maksym, Thank you for posting. One approach you can consider is to decode the signature, the format will be [JSON Web Token](https://marketplace.zoom.us/docs/sdk/native-sdks/auth#generate-the-sdk-jwt), Addendum If using SDK App type, debug by [https://jwt.io](https://jwt.io)Example signature created with SDK App type: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZGtLZXkiOiJhYmMxMjMiLCJtbiI6IjEyMzQ1Njc4OSIsInJvbGUiOjAsImlhdCI6MTY0NjkzNzU1MywiZXhwIjoxNjQ2OTQ0NzUzLCJhcHBLZXkiOiJhYmMxMjMiLCJ0b2tlbkV4cCI6MTY0Njk0NDc1M30.UcWxbWY-y22wFarBBc9i3lGQuZAsuUpl8GRR8wUah2M [jwt.io](https://jwt.io)

---

<div class="post-metadata">

**Author:** ![chaitanyasondur](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chaitanyasondur/32/38506_2.png) [@chaitanyasondur](https://devforum.zoom.us/u/chaitanyasondur)\
**Post date:** [June 21, 2022, 6:31pm UTC](https://devforum.zoom.us/t/join-meeting-timeout-no-permission/70597/3 "2022-06-21T18:31:25Z")

</div>

Thank you so much for your quick response @donte.zoom. I debugged the signature and the payload fields were correct according to me. But it shows an “Invalid Signature” error at the bottom. I have also attached the snap. Kindly help me out with this. Thanks.

[REDACTED PII }

---

<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:** [June 21, 2022, 7:31pm UTC](https://devforum.zoom.us/t/join-meeting-timeout-no-permission/70597/4 "2022-06-21T19:31:12Z")

</div>

@chaitanyasondur,

Thanks for sharing that screenshot, @chaitanyasondur! To align with security best practices, we ask that you remove any Personal Identifiable Information when posting in the Forum. That aside, based on the screenshot, the signature looks correct. May I ask which SDK are you working with? (i.e, React, VUE, Vanilla JS) ? In the meantime, I’d next generate a signature using the Zoom Meeting SDK Sample Signature Node.js app and compare your function signature output against the Sample App.

> **[GitHub - zoom/meetingsdk-sample-signature-node.js: Generate a signature to...](https://github.com/zoom/meetingsdk-sample-signature-node.js)**
>
> Generate a signature to Start and Join Meetings and Webinars with the Zoom Meeting SDKs. - GitHub - zoom/meetingsdk-sample-signature-node.js: Generate a signature to Start and Join Meetings and Web...

---

<div class="post-metadata">

**Author:** ![chaitanyasondur](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chaitanyasondur/32/38506_2.png) [@chaitanyasondur](https://devforum.zoom.us/u/chaitanyasondur)\
**Post date:** [June 22, 2022, 3:07am UTC](https://devforum.zoom.us/t/join-meeting-timeout-no-permission/70597/5 "2022-06-22T03:07:22Z")

</div>

Thank you @donte.zoom. I am working with the React SDK.

---

<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:** [June 23, 2022, 3:27pm UTC](https://devforum.zoom.us/t/join-meeting-timeout-no-permission/70597/6 "2022-06-23T15:27:40Z")

</div>

@chaitanyasondur.

You’re welcome! Have you tried to generate a signature using the Zoom Meeting SDK Sample Signature Node.js app and compare your function signature output against the Sample App ?

---

<div class="post-metadata">

**Author:** ![chaitanyasondur](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/chaitanyasondur/32/38506_2.png) [@chaitanyasondur](https://devforum.zoom.us/u/chaitanyasondur)\
**Post date:** [June 30, 2022, 2:56pm UTC](https://devforum.zoom.us/t/join-meeting-timeout-no-permission/70597/7 "2022-06-30T14:56:25Z")

</div>

Hello @donte.zoom, I tried using [meetingsdk-sample-signature-node.js](https://github.com/zoom/meetingsdk-sample-signature-node.js.git). The signature I received was almost identical to the previous one. The role, SDK key, app key, mn were all the same.

While using the server to generate the signature, I got a different error: `Uncaught TypeError: Cannot read properties of undefined (reading 'toString') at A (bundle.js:35671:68)`.

The error occurred in `signature: "function" !== typeof e.signature ? e.signature.toString() : e.signature,` in bundle.js file.

---

<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:** [June 30, 2022, 3:49pm UTC](https://devforum.zoom.us/t/join-meeting-timeout-no-permission/70597/8 "2022-06-30T15:49:43Z")

</div>

@chaitanyasondur ,

That error appears to be in your bundle.js file. It seems the root cause is with your implementation. As a sanity check, I’d recommend performing an isolated test using the Sample SDK  
and [meetingsdk-sample-signature-node.js](https://github.com/zoom/meetingsdk-sample-signature-node.js.git) outside of your codebase? This will help to isolate what the root cause of the error you are receiving in your implementation.

---

<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:** [July 1, 2022, 5:22pm UTC](https://devforum.zoom.us/t/join-meeting-timeout-no-permission/70597/9 "2022-07-01T17:22:28Z")

</div>

hi,  
for your signature you use the SDK JWT, but for join you use JWT - two differnet app types

wrong property:

```auto
ZoomMtg.join({
   signature: signature,
   apiKey: key,

```

correct property:

```auto
ZoomMtg.join({
   signature: signature,
   sdkKey: key,

```

line 73:

> <https://github.com/zoom/meetingsdk-web-sample/blob/master/CDN/js/meeting.js>

Jürgen

---

<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:** [July 5, 2022, 5:40pm UTC](https://devforum.zoom.us/t/join-meeting-timeout-no-permission/70597/10 "2022-07-05T17:40:53Z")

</div>

Thank you for sharing your insight @j.schoenemeyer!

---

<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:** [August 5, 2022, 3:40am UTC](https://devforum.zoom.us/t/join-meeting-timeout-no-permission/70597/11 "2022-08-05T03:40:58Z")

</div>

Closed on August 5, 2022, 3:40am UTC

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