gpt4 book ai didi

ruby - 如何在没有服务器的情况下完成此 OAuth 过程?

转载 作者:太空宇宙 更新时间:2023-11-03 17:54:02 25 4
gpt4 key购买 nike

我正在使用 ruby​​-box gem 连接到 box.com,它声明使用此代码获取访问 token :

session = RubyBox::Session.new({
client_id: $boxClientID,
client_secret: $boxClientSecret
})

authorize_url = session.authorize_url('https://redirect-url-in-app-settings')

@token = session.get_access_token('code-returned-to-redirect_url')

问题是我没有要重定向到的 url,而且我也没有使用 GUI,所以我无法从那里获取代码。我该怎么办?

最佳答案

Ben,我是 ruby​​-box Gem 的开发人员之一。您可以执行以下操作:

  • 在 app.box.com 设置您的应用程序以使用此回调

https://localhost/oauth2callback
  • 在 IRB 中,使用相同的回调生成授权 url:
    session = RubyBox::Session.new({      client_id: $boxClientID,      client_secret: $boxClientSecret    })    authorize_url = session.authorize_url('https://localhost/oauth2callback')
  • 将此 URL 粘贴到网络浏览器中。
  • 一旦您通过 Box 进行身份验证,您最终将进入一个回调页面,其 URL 如下所示:

https://localhost/oauth2callback?state=&code=OQpfImZH35Ab9weUy61kthIvqZ2Dyz6
  • 复制代码的值。
  • 回到 irb,运行这个命令:

token = session.get_access_token('OQpfImZH35Ab9weUy61kthIvqZ2Dyz6')
access_token = token.token
refresh_token = token.refresh_token
  • 将访问 token 和刷新 token 都存储在数据库中(或餐巾纸上,或您认为合适的任何地方)。
  • 从现在开始,您可以像这样实例化一个 session :

session = RubyBox::Session.new({
access_token: $storedAccessTokenValue,
refresh_token: $storedRefreshTokenValue,
client_id: $boxClientID,
client_secret: $boxClientSecret
})

client = RubyBox::Client.new(session)

一个用户只需要获取一次access_token和refresh_token。

关于ruby - 如何在没有服务器的情况下完成此 OAuth 过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18034936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com