gpt4 book ai didi

ruby-on-rails - 如何为 oauth 回调配置路由

转载 作者:数据小太阳 更新时间:2023-10-29 08:32:39 24 4
gpt4 key购买 nike

我正在使用 gem OAuth2与 Google 服务进行通信。我不明白如何实现回调,它接收带有 OAuth 代码的响应以获取访问 token 。当我在 callback 方法中设置断点时,它似乎永远不会被调用。

这是我的代码:

路线:

match '/oauth2/callback' => 'reports#callback'

实际重定向的 url:

http://localhost/oauth2/callback?code=111111  

报表 Controller :

def new
client = OAuth2::Client.new(ENV['GA_CLIENT_ID'], ENV['GA_SECRET_KEY'], {
:authorize_url => 'https://accounts.google.com/o/oauth2/auth',
:token_url => 'https://accounts.google.com/o/oauth2/token'
})
redirect_to client.auth_code.authorize_url({
:scope => 'https://www.googleapis.com/auth/analytics.readonly',
:redirect_uri => 'http://localhost/oauth2/callback',
:access_type => 'offline'
})
end

def callback
oauth_code = params[:code]

# Create access token with oauth_code
end

最佳答案

Google 服务器正在尝试访问此无效的 URL http://localhost/oauth2/callback?code=111111

您需要一个域名才能使用像 OAuth 这样的服务,因为谷歌服务器必须能够通过互联网找到您的计算机。

为了能够在您的开发机器上执行此操作,您应该:

  1. 在已知 DNS 服务器上设置名称:最简单的方法是通过动态 DNS 服务器,如 dyndnsno-ip

  2. 如果您在使用 NAT 的路由器后面,您可能需要将请求重定向到您计算机端口 80 上的调制解调器:如果您不这样做如果不这样做,您的调制解调器将在端口 80 上从谷歌收到一个包,并会说“不适合我”,然后将其丢弃。您可以在调制解调器菜单中执行此操作 - 在其上查找端口转发或 NAT 部分。

关于ruby-on-rails - 如何为 oauth 回调配置路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16864199/

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