【问题标题】:Post request to get zoom oauth2.0 token results in 403 error发布获取缩放 oauth2.0 令牌的请求导致 403 错误
【发布时间】:2020-11-02 04:43:17
【问题描述】:

我正在尝试制作一个缩放 oauth2.0 应用程序。为了做到这一点,我正在制作一个访问缩放 api 的后端路由。我正在尝试执行位于https://marketplace.zoom.us/docs/guides/auth/oauth 的步骤 1 和 2,但我在步骤 2 中遇到了问题,这是获取令牌的发布请求。这是我的代码:

router.get('/zoom', auth, async (req, res) => {
  if (req.query.code) {
    const url = `https://zoom.us/oauth/token?grant_type=authorization_code&code=${req.query.code}&redirect_uri=${CLIENT_HOME_PAGE_URL}`;
    const headers = {
      'Content-Type': 'application/json',
      Authorization:
        'Basic clientid:clientsecret'
    };
    try {
      const res = await axios.post(url, null, { headers: headers });
      console.log(res);
    } catch (err) {
      console.error(err.message);
      return res.status(500).send('Sever Error');
    }
  }
  res.redirect(
    `https://zoom.us/oauth/authorize?response_type=code&client_id=${ZOOM_CLIENT_ID}&redirect_uri=${ZOOM_REDIRECT_URI}`
  );
});

此时,我只想打印数据。 ZOOM_REDIRECT_URI 指向 '/zoom' 的同一路由,clientid:clientsecret 被替换为实际客户端 id 和密钥的 base64string 版本。我能够被重定向到 https://zoom.us/oauth/authorize,这会将我重定向回 /zoom 并尝试向该 url 发出发布请求,但发布请求失败,状态为 403。我的代码有什么问题?

【问题讨论】:

标签: node.js oauth-2.0 axios zoom-sdk


【解决方案1】:

您可能想尝试使用 POST 发送的数据作为请求正文中编码的表单 url,这是 OAuth 标准:

const formData = new URLSearchParams();
formData.append('grant_type', 'authorization_code');
formData.append('code', 'some_code');
formData.append('redirect_uri', 'some_redirect_uri');

const options = {
    url: this._configuration.tokenEndpoint,
    method: 'POST',
    data: formData,
    headers: {
        'content-type': 'application/x-www-form-urlencoded',
        'accept': 'application/json',
    },
};
const response = await axios.request(options);

奇怪的是,Zoom 文档指示带有查询参数的 POST - 可能是文档问题...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-06
    • 1970-01-01
    相关资源
    最近更新 更多