Joining meeting timeout. Signature is invalid. (React & Node (for token generation))

I’m trying to join a meeting created by me using ZOOM SDK, but I’m getting " Joining meeting timeout. Signature is invalid.".

Please help me understand where I’m going wrong.

Hi Paritosh,
Could you ensure you are generating the signature using a UTC timezone.

Yes, I’m generating the signature using UTC timezone.
Code Reference:

const generateSignature = (meetingNumber, role) => {
  const iat = Math.floor(Date.now() / 1000) - 30;
  const exp = iat + 20 * 60 * 60;
  const payload = {
    sdkKey: API_KEY,
    mn: meetingNumber,
    role,
    iat,
    exp,
    appKey: API_KEY,
    tokenExp: exp,
  };
  return jwt.sign(payload, API_SECRET, { algorithm: "HS256" });
};
app.get("/meeting/:meetingId", async (req, res) => {
  const meetingId = req.params.meetingId;
  // Here, generate the Zoom SDK signature and get API key and password
  const signature = generateSignature(meetingId, 0); // Implement this
  const apiKey = API_KEY; // Use your API key
  const meetingPassword = ""; // Use the meeting password

  res.json({ signature, apiKey, meetingPassword });
});

Hi Community,
Anyone has any solution for this?