Hi @Christopher, welcome to the community.
To clarify:
Make sure you’ve created a General app (Meeting SDK) in the Zoom Marketplace — not an OAuth, Server-to-Server OAuth, or JWT app. Only the General app gives you the correct Client ID and Client Secret required to generate a valid signature.
Follow the previous topic here for proper steps to get your credentials and generate a signature:
How to properly get Client ID/Secret and generate Meeting SDK signature (Not able to find my SDK Key - #3 by freelancer.nak)
If you’re using Node.js, here’s a working signature generator using jsrsasign
:
const KJUR = require('jsrsasign');
function generateSignature({ meeting, admin }) {
const iat = Math.round(new Date().getTime() / 1000) - 30;
const exp = iat + 60 * 60 * 2;
const oHeader = {
alg: 'HS256',
typ: 'JWT'
};
const oPayload = {
sdkKey: process.env.ZOOM_CLIENT_ID,
mn: meeting.id,
role: admin ? 1 : 0,
iat: iat,
exp: exp,
appKey: process.env.ZOOM_CLIENT_ID,
tokenExp: iat + 60 * 60 * (process.env.MEETING_DURATION_IN_HOURS || 3)
};
const sHeader = JSON.stringify(oHeader);
const sPayload = JSON.stringify(oPayload);
const signature = KJUR.jws.JWS.sign('HS256', sHeader, sPayload, process.env.ZOOM_CLIENT_SECRET);
return signature;
}
module.exports = {
generateSignature
};
Let us know if you want help reviewing your setup. You’re close — just make sure the app type and credentials are correct.