0

我正在使用 OmniAuth GEM,并已成功地将其与 twitter 策略配合使用。我现在正在尝试设置用户也可以在那里使用 facebook 登录的能力。

我明白了,它正确地将我重定向到 facebook。我在 facebook 网站上确认访问并被重定向回我的回调 url(默认 auth/facebook/callback),但这里出错了。

我的路线和推特一样

  match "auth/facebook/callback" => "sessions#create"
  match "auth/twitter/callback" => "sessions#create"

但我收到一个错误

Faraday::Error::ConnectionFailed SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed

我发现非常错误的一件事是会话转储显示了这一点(已用 XXX/ABC 替换了一些键)

_csrf_token: "ABC/ABC=" oauth: {"twitter"=>{"callback_confirmed"=>true, "request_token"=>"XXX", "request_secret"=>"XXX"}} session_id: "XXX"

这里提到了 twitter,但我尝试使用 facebook 登录。也许与我在退出并尝试使用 facebook 登录之前使用 twitter 登录的事实有关。但我对此表示怀疑,并认为这与它对我不起作用的原因有关。

4

1 回答 1

0

嗨,您可以使用以下路线代替您的路线

match "auth/:provider/callback" => "sessions#create"

并将您的 Facebook 设置更改为

AccountSettings => 安全 => 安全浏览 => 禁用

如屏幕截图所示。在此处输入图像描述

因此,本地只需禁用并在生产中购买 SSL 证书即可。

于 2013-05-02T15:51:16.583 回答