cancel
Showing results for 
Search instead for 
Did you mean: 
Effective January 9th, 2026 through January 22nd, 2026: The Zoom Community is currently in read-only mode with login disabled, to deliver you a new and improved community experience!

The site is still accessible to view, however, the ability to login, create content, or access your community account is temporarily unavailable. We appreciate your patience during this time. If seeking support, please browse existing community content or ask our Zoom Virtual Agent.

Signature Invalid

healplace
Newcomer
Newcomer

Dear Zoom Support Team, I am writing to seek assistance regarding an issue we are facing with the Zoom Web SDK Client View. We have integrated the Zoom Web SDK into our web application to enable video conferencing capabilities for our users. However, we are encountering an “Invalid Signature” error when attempting to join a meeting using the generated signature. We have followed the documentation and guidelines provided by Zoom, but we are unable to resolve this issue on our own.

 

Example Sigature - 

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhcHBLZXkiOiJMVHp6NzVCTlNBbTlGU0pWOFlWYmFRIiwiaWF0IjoxNzEzOTY1NTMzLCJleHAiOjE3MTQxMzgzMzMsInRva2VuRXhwIjoxNzE0MTM4MzMzLCJtbiI6MTIzNDU2Nywicm9sZSI6MSwic2RrS2V5IjoiTFR6ejc1Qk5TQW05RlNKVjhZVmJhUSJ9.St_WCdiY0d5DcvyFQ5zmZ48m2IwJrRq0lKyONBkOPHc
1 REPLY 1

Firas_ghobber
Community Champion | Zoom Partner
Community Champion | Zoom Partner

Hello, 

I'm intercepted with the some  error and i will share with you my js code how i'm generate signature code .

 

const generateSDKSignature = asyncHandler(async (req, res) => {
  const iat = Math.round(new Date().getTime() / 1000) - 30;

  const exp = iat + 60 * 60 * 2;

  const oHeader = { alg: "HS256", typ: "JWT", };

  const oPayload = {
    appKey: process.env.ZOOM_MSDK_KEY,
    sdkKey: process.env.ZOOM_MSDK_KEY,
    mn: req.body.meetingNumber,
    role: req.body.role,
    iat: iat,
    exp: exp,
    tokenExp: iat + 60 * 60 * 2
  };


  const sHeader = JSON.stringify(oHeader);
  const sPayload = JSON.stringify(oPayload);
  const signature = KJUR.jws.JWS.sign(
    'HS256',
    sHeader,
    sPayload,
 process.env.ZOOM_MSDK_SECRET
 



  );


  res.json({
    signature: signature,

  });

});