Формат токена интеграции аутентификации Github - PullRequest
0 голосов
/ 24 октября 2018

Я пишу CLI и хочу включить опции аутентификации в Github.Я хотел бы взять учетные данные пользователя - либо имя пользователя / пароль, либо имя пользователя / personal_access_token и пройти аутентификацию.В идеале я бы мог получить токен JWT для пользователя , чтобы соответствовать рабочему процессу моего приложения.Вот что я делаю:

Я отправляю учетные данные, которые я собираю из своего CLI, чтобы разрешить моему приложению Github доступ:

Headers: Basic base64encode(username:password)
POST https://api.github.com/authorizations
{
    "client_id":"my client id",
    "client_secret":"my client secret",
    "note": "description of application"
}

Я получаю токен 0Auth.Я хотел бы использовать этот токен, чтобы получить токен на предъявителя для пользователя.Я пытаюсь:

POST https://github.com/login/oauth/access_token
{
    "client_id":"my client id",
    "client_secret":"my client secret",
     "code": "token I received from authorizations call above"
}

Я получаю ответ "плохая проверка":

error=bad_verification_code&error_description=The code passed is incorrect or expired.&error_uri=https://developer.github.com/apps/managing-oauth-apps/troubleshooting-oauth-app-access-token-request-errors/#bad-verification-code

Я думаю, это потому, что код, который последний вызов ожидает код от перенаправления ввеб-поток, но так как это не веб-приложение, мои возможности ограничены базовой аутентификацией.Кажется, что токен, который я получаю от авторизации, не работает.

Я копаюсь в документах, но, похоже, не могу найти способ соединить доступ через базовую авторизацию и получить токен-носитель JWT дляпользователь.Может ли кто-нибудь сказать мне, если я что-то упустил?То, что я пытаюсь сделать, достижимо?Любой совет приветствуется.Большое спасибо!

...