0

I am using Zoom api to refresh access token if expired. I have tried everything but its always gives me invalid_grant(Invalid Token!) error. I also tried this but problem seem unsolvable. The token I generate is never used but still it gives me invalid_grant error. Here is my code

 const zoomAuth = Buffer.from(
  process.env.ZOOM_CLIENT_ID + ':' + process.env.ZOOM_CLIENT_SECRET
).toString('base64');

const fetchZoomToken = async (user) => {
  try {
    let todayDate = new Date();
    if (todayDate < new Date(user.zoom_expires_in)) {
      return {
        success: true,
        status: 200,
        access_token: user.zoom_access_token,
      };
    }
    const zoomRes = await axios.post(
      `https://zoom.us/oauth/token?refresh_token=${user.zoom_refresh_token}&grant_type=refresh_token`,
      null,
      {
        headers: {
          Authorization: `Basic ${zoomAuth}`,
          'content-type': 'application/x-www-form-urlencoded',
        },
      }
    );

    console.log(zoomRes.data);

    if (!zoomRes.ok)
      return {
        success: false,
        status: 401,
        message: 'Could not connect with Zoom',
      };
    if (zoomRes.data.error) {
      return {
        success: false,
        status: 401,
        message: zoomRes.data.reason,
      };
    }
    const doc = await User.findByIdAndUpdate(user._id, {
      zoom_expires_in: new Date(todayDate.getTime() + zoomRes.data.expires_in * 1000),
      zoom_access_token: zoomRes.data.access_token,
      zoom_refresh_token: zoomRes.data.refresh_token,
    });

    return {
      success: true,
      status: 200,
      access_token: zoomRes.data.access_token,
    };
  } catch (err) {
    console.log(err);
    return {
      success: false,
      status: 500,
      message: 'Something went wrong',
    };
  }
};
VLAZ
  • 26,331
  • 9
  • 49
  • 67
Muhammad Sami
  • 520
  • 2
  • 8
  • 21

0 Answers0