OctoKit Ruby Authentication



我确定这是一个简单的错误,但我有兴趣编写一个程序来收集我所有 github 存储库的信息。虽然这似乎很简单,但与 Octokit 有关,但我遇到了与验证我的会话相关的问题。

client = Octokit::Client.new 
:login    => 'MY_USER_NAME',
:password => 'MY_PASSWORD'
puts client
user = client.user("MY_USER_NAME", :headers => { "PERSONAL_ACCESS_TOKEN_NAME" => "TOKEN" })
puts user

不幸的是,这会导致以下结果:

GET https://api.github.com/users/mccoleman75225: 401 - Must specify two-factor authentication OTP code. // See: https://developer.github.com/v3/auth#working-with-two-factor-authentication (Octokit::OneTimePasswordRequired)

某人如何对他们的会话进行身份验证?

自 2022 年 1 月起,您可以在 GitHub 开发人员设置中创建 PAT(个人访问令牌(,并使用它来通过 Octokit 客户端进行连接,如下所示:

client = Octokit::Client.new(:access_token => "<Your Personal Access Token>")
user = client.user
user.login
# => "monacat"

下面是有关如何创建 PAT 的分步指南。 尝试在创建令牌时选择正确的权限,否则将返回 403 错误,其中包含一条消息,说明缺少的范围。不过,您以后可以随时返回并编辑范围。

来源:

  • Octokit.rb — 身份验证
  • GitHub API 身份验证 - 个人访问令牌

看起来您的帐户启用了 2 因素身份验证,因此您需要添加 2FA 令牌:

client = Octokit::Client.new 
:login    => 'defunkt',
:password => 'c0d3b4ssssss!'
client.create_authorization(:scopes => ["user"], :note => "Name of token",
:headers => { "X-GitHub-OTP" => "<your 2FA token>" })
# => <your new oauth token>

请参阅文档

相关内容

  • 没有找到相关文章

最新更新