Я пишу 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 дляпользователь.Может ли кто-нибудь сказать мне, если я что-то упустил?То, что я пытаюсь сделать, достижимо?Любой совет приветствуется.Большое спасибо!