Обмен кода для токена доступа пользователя при установке приложения GitHub - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь использовать эти инструкции (https://developer.github.com/apps/building-github-apps/identifying-and-authorizing-users-for-github-apps/#identifying-and-authorizing-users-for-github-apps) для получения access_token во время установки приложения GitHub.

Приложение запрашивает разрешение пользователя «Электронная почта». В приложении установлено «Запросить авторизацию пользователя (OAuth) во время установки».

Я устанавливаю приложение и перенаправляюсь GitHub на мой «URL обратного вызова авторизации пользователя». При обслуживании этой страницы я извлекаю параметр code, который является параметром строки запроса URL-адреса.

Я следую инструкциям на приведенной выше странице, чтобы выполнить пост-запрос, используя библиотеку javascript request (я попробовал альтернативы, но больше не повезло).

  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 вместо токена доступа.

...