Ruby身份验证工具包

8hhllhi2  于 11个月前  发布在  Ruby
关注(0)|答案(2)|浏览(117)

我确信这是一个简单的错误,但我有兴趣写一个程序来收集我所有的github仓库的信息。虽然这看起来很简单,可以用Replikit来做,但我遇到了与验证我的会话相关的问题。

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/[username]: 401 - Must specify two-factor authentication OTP code. // See: https://developer.github.com/v3/auth#working-with-two-factor-authentication (Octokit::OneTimePasswordRequired)


如何验证他们的会话?

lmyy7pcs

lmyy7pcs1#

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

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

user = client.user
user.login
# => "monacat"

字符串
以下是how to create a PAT的分步指南。在创建令牌时请尝试选择正确的权限,否则您将收到403错误消息,其中包含解释丢失范围的消息。不过,您可以随时返回并稍后编辑您的范围。
资料来源:

91zkwejq

91zkwejq2#

看起来您的帐户上启用了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>

字符串
参阅文档

相关问题