Joining meeting timeout or browser restriction "Signature is invalid"

Hello team,

In recent time we faced “signature invalid” issue for particular users (not for all users) while joining the meeting. Our current zoom web SDK version is 3.1.2. Both sdkKey and secretKey (to create signature) has been same for all users. But some of the users only got this issue.

Kindly check and help us to resolve this issue.

zoom error

@Zeoner

Is the signature different for each users and generated on-demand when they are needed?

@chunsiong.zoom

            ZoomMtg.generateSDKSignature({
                    meetingNumber: meetingNumber,
                    sdkKey: msdkKey,
                    sdkSecret: msdkSecret,
                    role: 1,
                    success: function (res) {
                            sign = res;
                    },
                    error: function(res) {
                    }
            });

This is the method we have used to create signature. But once the user logged in from different location and tried to join the meeting it shows timeout error. When I tried with the same user login I can able to join the meeting without any error.

Is there error occurred based on location or it is the timestamp error?

Kindly share your view on this.

@Zeoner are you generating the signature from client side or server side?

@chunsiong.zoom

I have generated the signature using Client side. Its a Library called ZoomMtg in Javascript. So using that function I have generate the signature as mentioned above.

@Zeoner if you are generating this on the client side (which is totally not recommended, due to secret key exposure), there is a high chance the client’s time is not sync to NTP server.

So if the time on the user’s machine is out of sync, there is a high chance the IAT and EXP might not be valid

@chunsiong.zoom

Thanks for your update. But this is the way we using to create signature for initiate the zoom right?

Or is there any method to create signature in server side? If yes please lemme know.

@Zeoner ,

Your web app can call a hosted nodejs app using localhost instead of a public URL to securely fetch the generated JWT token.

Here’s the sample of the said “hosted nodejs app”

@chunsiong.zoom

Thanks for your update. I’ll check the same and let you know, If I face any issue.

@chunsiong.zoom
We have checked with Git code which you have shared. But it is generate the signature using JWT type. As per zoom’s statement JWT method is deprecated right?

That’s why we used “ZoomMtg.generateSDKSignature” method instead of “JWT” method.

Could you please check the same and lemme know.

Thanks

@Zeoner JWT token is often confused with JWT App type. They are 2 different things.

The signature used to authenticate the SDK is based on JWT token format

@chunsiong.zoom

We have faced the same issue for the particular users. So I think if there is any possibility to connect with one of your delveloper. It’ll help us to sort out the exact issue?

Kindly share your view on this.

@Zeoner,

Do you have the signature which was generated by this particular user?

@chunsiong.zoom

Yes I have,

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBLZXkiOiJwZVFsU2Rvelp4VzBNZE01VUJlQU1LSFJlb2JGR1BaN1N5OGIiLCJzZGtLZXkiOiJwZVFsU2Rvelp4VzBNZE01VUJlQU1LSFJlb2JGR1BaN1N5OGIiLCJpYXQiOjE3MDc4MDM1NTksImV4cCI6MTcwNzgxMDc1OSwibW4iOiIzNjIyMTE3NDQ5Iiwicm9sZSI6MX0.JL8dLPWaRe47pvI3Yie81motVw_ywlnUJB9D5F9mWJU

@Zeoner

For users who are joining a meeting, could you change their "role" : 0 instead?

@chunsiong.zoom

We have tried the same. If the role is the root cause for this issue it won’t work for me also right? But its working fine for me. Same user login not working for the user who’re in Nigeria and Egypt country. I have attached the console logs for both mine and Egyptian user. Kindly check the same.

Console Log for same user from INDIA (But connected Egypt server through VPN):

Signature: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBLZXkiOiJwZVFsU2Rvelp4VzBNZE01VUJlQU1LSFJlb2JGR1BaN1N5OGIiLCJzZGtLZXkiOiJwZVFsU2Rvelp4VzBNZE01VUJlQU1LSFJlb2JGR1BaN1N5OGIiLCJpYXQiOjE3MDc4MTQ4MzIsImV4cCI6MTcwNzgyMjAzMiwibW4iOiIzNjIyMTE3NDQ5Iiwicm9sZSI6MX0.L_FpKSCHvQx_zzNfxfo77qr3-eYTkzUVNJl4zYKqQUg

video_consult.php?id=&host=&uuid=er&host_name=&password=*.1:92 Sign Date: 1707814861813

19Third-party cookie will be blocked. Learn more in the Issues tab.

zoom-meeting-3.1.2.min.js:2 pre load wasm success: https://source.zoom.us/3.1.2/lib/av/audio.encode.wasm

zoom-meeting-3.1.2.min.js:2 pre load wasm success: https://source.zoom.us/3.1.2/lib/av/video.simd.wasm

video_consult.php?id=&host=&uuid=er&host_name=&password=
.1:122 Meeting init:

video_consult.php?id=&host=&uuid=er&host_name=&password=
.1:122 {method: ‘init’, status: true, errorCode: 0, errorMessage: null, result: null}

video_consult.php?id=&host=&uuid=er&host_name=&password=
.1:123 Meeting Date: 1707814864010

js_media.min.js:1 VP9?: true AMD?: false AMDdecodecheck: true isenbaleHD:true enable720p?: false capacityfor720: false

js_media.min.js:1 VP9?: true AMD?: false AMDdecodecheck: true isenbaleHD:true enable720p?: false capacityfor720: false

caa5fa28-f531-49e7-a306-c85120510641:1 consume interval 6

video_consult.php?id=*****&host=***8&uuid=er&host_name=8&password=.1:132
Join meeting:

video_consult.php?id=&host=&uuid=er&host_name=&password=****
.1:132 undefined

video_consult.php?id=&host=&uuid=er&host_name=*********&password=***********.1:133 Join meeting Date: 1707814893583

Console Log for same user from EGYPT and Nigeria (But connected Egypt server through VPN):

Signature: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBLZXkiOiJwZVFsU2Rvelp4VzBNZE01VUJlQU1LSFJlb2JGR1BaN1N5OGIiLCJzZGtLZXkiOiJwZVFsU2Rvelp4VzBNZE01VUJlQU1LSFJlb2JGR1BaN1N5OGIiLCJpYXQiOjE3MDc4MTQyODUsImV4cCI6MTcwNzgyMTQ4NSwibW4iOiIzNjIyMTE3NDQ5Iiwicm9sZSI6MX0.2JwwUS0kenJYTl-niRFyvB0Nwk63fm97J0Ca7_32qqc

video_consult.php?id=&host=&uuid=er&host_name=&password=****.1:92
Sign Date: 1707814314927

zoom-meeting-3.1.2.min.js:2 pre load wasm success: https://source.zoom.us/3.1.2/lib/av/audio.encode.wasm

video_consult.php?id=****&host=&uuid=er&host_name=&password=*****.1:122 Meeting init:

video_consult.php?id=&host=&uuid=er&host_name=&password=.1:122 {method: ‘init’, status: true, errorCode: 0, errorMessage: null, result: null}

video_consult.php?id=*****&host=&uuid=er&host_name=&password=.1:123 Meeting Date: 1707814315865

zoom-meeting-3.1.2.min.js:2 pre load wasm success: https://source.zoom.us/3.1.2/lib/av/video.simd.wasm

video_consult.php?id=&host=&uuid=er&host_name=**&password=.1:137 Join meeting error:

video_consult.php?id=***&host=&uuid=er&host_name=&password=.1:137 {method: ‘join’, status: false, result: ‘Invalid signature.’, errorCode: 3712, errorMessage: ‘Signature is invalid.’}errorCode: 3712errorMessage: "Signature is invalid."method: "join"result: "Invalid signature."status: false[[Prototype]]: Object

video_consult.php?id=&host=***&uuid=er&host_name=&password=.1:138
Join meeting erro Date: 1707814317229

Kindly check the same and share your view on this as a High priority.

We have tried the same. If the role is the root cause for this issue it won’t work for me also right? But its working fine for me. Same user login not working for the user who’re in Nigeria and Egypt country. I have attached the console logs for both mine and Egyptian user. Kindly check the same.

Could you check if there is restriction on the account settings?
https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0064685

Console Log for same user from INDIA (But connected Egypt server through VPN):

Signature: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBLZXkiOiJwZVFsU2Rvelp4VzBNZE01VUJlQU1LSFJlb2JGR1BaN1N5OGIiLCJzZGtLZXkiOiJwZVFsU2Rvelp4VzBNZE01VUJlQU1LSFJlb2JGR1BaN1N5OGIiLCJpYXQiOjE3MDc4MTQ4MzIsImV4cCI6MTcwNzgyMjAzMiwibW4iOiIzNjIyMTE3NDQ5Iiwicm9sZSI6MX0.L_FpKSCHvQx_zzNfxfo77qr3-eYTkzUVNJl4zYKqQUg

video_consult.php?id=&host= &uuid=er&host_name= *******&password=********.1:92 Sign Date: 1707814861813

19Third-party cookie will be blocked. Learn more in the Issues tab.

zoom-meeting-3.1.2.min.js:2 pre load wasm success: https://source.zoom.us/3.1.2/lib/av/audio.encode.wasm

zoom-meeting-3.1.2.min.js:2 pre load wasm success: https://source.zoom.us/3.1.2/lib/av/video.simd.wasm

video_consult.php?id=&host=&uuid=er&host_name=&password=
.1:122 Meeting init:

video_consult.php?id=&host=&uuid=er&host_name=&password=
.1:122 {method: ‘init’, status: true, errorCode: 0, errorMessage: null, result: null}

video_consult.php?id=&host=&uuid=er&host_name=&password=
.1:123 Meeting Date: 1707814864010

js_media.min.js:1 VP9?: true AMD?: false AMDdecodecheck: true isenbaleHD:true enable720p?: false capacityfor720: false

js_media.min.js:1 VP9?: true AMD?: false AMDdecodecheck: true isenbaleHD:true enable720p?: false capacityfor720: false

caa5fa28-f531-49e7-a306-c85120510641:1 consume interval 6

video_consult.php?id=*****&host=***8&uuid=er&host_name=8&password=.1:132
Join meeting:

video_consult.php?id=&host= &uuid=er&host_name= &password=****
.1:132 undefined

video_consult.php?id=&host=&uuid=er&host_name=*********&password=***********.1:133 Join meeting Date: 1707814893583

Console Log for same user from EGYPT and Nigeria (But connected Egypt server through VPN):

Signature: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhcHBLZXkiOiJwZVFsU2Rvelp4VzBNZE01VUJlQU1LSFJlb2JGR1BaN1N5OGIiLCJzZGtLZXkiOiJwZVFsU2Rvelp4VzBNZE01VUJlQU1LSFJlb2JGR1BaN1N5OGIiLCJpYXQiOjE3MDc4MTQyODUsImV4cCI6MTcwNzgyMTQ4NSwibW4iOiIzNjIyMTE3NDQ5Iiwicm9sZSI6MX0.2JwwUS0kenJYTl-niRFyvB0Nwk63fm97J0Ca7_32qqc

video_consult.php?id=&host= &uuid=er&host_name= *&password=*****.1:92
Sign Date: 1707814314927

zoom-meeting-3.1.2.min.js:2 pre load wasm success: https://source.zoom.us/3.1.2/lib/av/audio.encode.wasm

video_consult.php?id=****&host=&uuid=er&host_name=&password=*****.1:122 Meeting init:

video_consult.php?id=&host=&uuid=er&host_name=&password=.1:122 {method: ‘init’, status: true, errorCode: 0, errorMessage: null, result: null}

video_consult.php?id=*****&host=&uuid=er&host_name=&password=.1:123 Meeting Date: 1707814315865

zoom-meeting-3.1.2.min.js:2 pre load wasm success: https://source.zoom.us/3.1.2/lib/av/video.simd.wasm

video_consult.php?id=&host=&uuid=er&host_name=**&password=.1:137 Join meeting error:

video_consult.php?id=***&host=&uuid=er&host_name=&password=.1:137 {method: ‘join’, status: false, result: ‘Invalid signature.’, errorCode: 3712, errorMessage: ‘Signature is invalid.’}errorCode: 3712errorMessage: "Signature is invalid."method: "join"result: "Invalid signature."status: false[[Prototype]]: Object

video_consult.php?id=&host=***&uuid=er&host_name=&password=.1:138
Join meeting erro Date: 1707814317229

Unfortunately these logs are not helpful for debugging. If you could help to capture the web tracking ID, I might be able to take a look at this.

  1. Under console, goto network tab
  2. Look for the request made to info?meeting......
  3. In the headers, look for the trackingID which starts with WEB_…

Kindly check the same and share your view on this as a High priority.

Please note that support on the developer forum is best effort, while we will try our best to help, if you need priority on your issue, I would recommend getting a support plan.

@chunsiong.zoom

Thanks for the update. I have attached the screenshot which you have needed below. Kindly check the same.

Zoom successfully connected:

Zoom not connected :

@Zeoner , I’ve just checked the web tracking ID with the “not connected” error.

The IAT is set in the future, It is like 10 minutes into the future.
IAT needs to be now, or in the past.

@chunsiong.zoom

Thanks chun. The issue got fixed and its works like a charm.