在GitHub App安装上交换用户访问令牌的代码

时间:2019-06-10 13:24:02

标签: javascript github oauth github-api

我正在尝试使用这些说明(https://developer.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-and-authorizing-users-for-github-apps)在GitHub App安装期间获取access_token。

该应用程序请求“电子邮件”用户权限。 该应用程序已设置“在安装过程中请求用户授权(OAuth)”。

我安装了该应用程序,并被GitHub重定向到我的“用户授权回调URL”。在投放此页面时,我提取了code参数,它是URL的查询字符串参数。

我按照上一页的说明使用request javascript库发出了发布请求(我已经尝试过其他方法,但运气不佳)。

  const res = request.post({
    url: 'https://github.com/login/oauth/access_token',
    headers: {
      'Accept': 'application/vnd.github.machine-man-preview+json'
    },
    json: true,
    body: {
      client_id: process.env.GITHUB_APP_IDENTIFIER,
      client_secret: process.env.GITHUB_WEBHOOK_SECRET,
      code: code,
      redirect_uri: process.env.GITHUB_CALLBACK_URL
    }
  });

我也尝试过:

  • 表单编码
  • 查询字符串参数
  • 未指定redirect_uri(这不是强制性的,因为在将“安装过程中请求用户授权(OAuth)”设置为true的情况下,它不适用吗?)
  • 未指定特殊标头

我还仔细检查了环境变量是否正确。

无论我做什么,我都会得到404而不是访问令牌。

0 个答案:

没有答案