omn​​iauth回调长时间延迟

时间:2013-01-30 12:25:34

标签: ruby-on-rails ruby-on-rails-3 omniauth thin

OmniAuth(Facebook和LinkedIn)为我工作了好几个月。

在没有任何代码更改的情况下,我开始在Facebook / LinkedIn的回调中看到很长的延迟。

现在需要大约40秒:

Started GET "/auth/facebook/callback?state=e600c4acbb0e10f40....

为:

Processing by AuthenticationsController#create as HTML....

我看到了an issue,但没有解决方案适合我。

有人见过吗?我怎样才能解决这个问题/弄清楚发生了什么?

- 编辑1 -

我用curl运行流程,发现对Facebook的调用需要很长时间:

time curl --data "grant_type=authorization_code&client_id=[MY CLINET ID]&client_secret=[MY CLIENT SECRET]&redirect_uri=[MY REDIRECT URI]&code=[THE CODE I GOT]" https://graph.facebook.com/oauth/access_token
>> access_token=AAAA....ZDZD&expires=5183693
real 0m20.459s
user 0m0.004s
sys 0m0.008s

time curl -H "Authorization: Bearer AAAA....ZDZD" https://graph.facebook.com/me
>> {....}
real 0m20.706s
user 0m0.012s
sys 0m0.008s

- 编辑2 -

似乎每次使用curl的调用都需要20秒。我试过Google:

time curl http://www.google.com
>> <HTML>....</HTML>

real    0m20.253s
user    0m0.012s
sys 0m0.004s

但是当我尝试使用IP时:

time curl http://173.194.44.17
>> <HTML>....</HTML>

real    0m0.647s
user    0m0.012s
sys 0m0.000s

我在某个网站上发现了一个提示,它可能与慢速DNS解析有关。同一台机器上的浏览器似乎工作正常。

任何想法?

1 个答案:

答案 0 :(得分:2)

我找到了解决方案。这是一个本地问题,与Ubuntu 12.04中缓慢的DNS解析有关,这是一个已知问题。为我解决的是配置我的系统以使用谷歌DNS而不是自动配置。