ocotkit/rest.js
сопровождающий здесь ?
client_secret
нельзя передать клиенту. Поток OAuth требует серверной части, которая обеспечивает безопасность client_secret
.
Альтернативой является создание токена с использованием вашего имени пользователя и пароля, в этом случае вам не нужен серверный компонент. Но обычно пользователи могут неохотно предоставлять свои учетные данные для входа на внешний сайт. Но для личных / внутренних проектов это может быть самый простой способ сделать это.
let octokit = new Octokit({
auth: {
username: USERNAME,
password: PASSWORD,
on2fa () {
return prompt('Enter code')
}
}
})
octokit.oauthAuthorizations.createAuthorization({
scopes: [], // add scopes
note: 'token description'
})
.then(({ data: { token } }) => {
octokit = new Octokit({ auth: 'token ${token}' })
// octokit is now authenticated with token
})
Обратите внимание, что токен note
должен быть уникальным. Если вы создали токен с той же заметкой ранее, вам нужно будет использовать другую заметку или сначала удалить существующий токен.
В настоящее время мы рассматриваем возможность добавления дополнительных параметров auth.*
, чтобы токен создавался для вас внутри перед отправкой любого запроса. Мы обсуждаем это изменение на https://github.com/octokit/rest.js/pull/1293, если вы заинтересованы