【问题标题】:OctoKit Ruby AuthenticationOctoKit Ruby 身份验证
【发布时间】:2020-01-30 16:02:59
【问题描述】:

我确信这是一个简单的错误,但我有兴趣编写一个程序来收集我所有 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)

有人如何验证他们的会话?

【问题讨论】:

    标签: ruby octokit


    【解决方案1】:

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

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

    这是how to create a PAT 的分步指南。在创建令牌时尝试选择正确的权限,否则您将返回 403 错误并显示一条解释缺失范围的消息。不过,您以后可以随时返回并编辑您的范围。

    来源:

    【讨论】:

      【解决方案2】:

      您的帐户似乎启用了 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>
      

      See documentation

      【讨论】:

      猜你喜欢
      • 2014-03-16
      • 2014-09-03
      • 1970-01-01
      • 2019-01-30
      • 1970-01-01
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      • 2023-03-17
      相关资源
      最近更新 更多