I am trying to upgrade to Meeting SDK app type and have followed the docs and sample app as suggested, however I am getting invalid signature. I have cross-checked everything but not able to figure whats the issue. Here is the code i am using in backend to generate signature
exports.zoomSignature = async (req, res) => {
try {
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: req.body.meetingNumber, role: req.body.role, iat: iat, exp: exp, appKey:process.env.ZOOM_CLIENT_ID, 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_CLIENT_SECRET) res.json({ signature: signature })
} catch (error) {
console.log(error); return res.status(500).json({ message: error.message })
}
}
Here is my frontend code:
const meetingConfig = {
sdkKey: "c2t1_GfbR3qrX66FyGsyYQ",
meetingNumber: meetingNumber,
userName: name? name : "learner",
passWord: password,
leaveUrl,
role: 0,
tk: '',
};
// console.log(meetingConfig)
const signatureCall = await apiReq(`${process.env.BASE_URL}/api/session/zoomSignature`, "POST", {
meetingNumber: meetingNumber,
role: 0
});
const signature = signatureCall.data.signature
console.log(signature, "SIG")
ZoomMtg.init({
leaveUrl: meetingConfig.leaveUrl,
isSupportAV: true,
success: () => {
console.log("SIGNATURE SUCCESS")
console.log({
signature: signature,
meetingNumber: meetingConfig.meetingNumber,
userName: meetingConfig.userName,
sdkKey: meetingConfig.sdkKey,
userEmail: '',
passWord: meetingConfig.passWord,
});
ZoomMtg.join({
signature: signature,
meetingNumber: meetingConfig.meetingNumber,
userName: meetingConfig.userName,
sdkKey: meetingConfig.sdkKey,
userEmail: '',
passWord: meetingConfig.passWord,
success: (success) => {
console.log(success);
},
error: (error) => {
console.log(error);
},
});
},
error: (error) => {
console.log("SIGNATURE ERROR")
console.log(error);
},
});
}
Here is one of the example of an attempt to join meeting from front end with error
Generated signature: {REDACTED}
meetingNumber: ‘81198873582’
sdkKey: ‘c2t1_GfbR3qrX66FyGsyYQ’
Error i get is following
errorCode: 3712
errorMessage: “Signature is invalid.”
method: “join”
result: “Invalid signature.”
status: false
Let me know if any further details required, thanks