2013-05-01 85 views
0

我使用OmniAuth GEM并成功地使用twitter策略工作。我现在正尝试设置用户也可以使用Facebook登录功能。OmniAuth连接失败,并与Facebook回调

我知道它正确的重定向到Facebook。我确认访问Facebook的网站,并重新回到我的回调网址(默认auth/facebook/callback),但在这里它错误。

我有一样的路线,作为Twitter的

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的。可能与我在Twitter上登录之前登录并尝试使用Facebook登录的事实有关。但我怀疑它,并认为这与它不适合我的原因有关。

回答

0

嗨您可以使用下面的路线,而不是您

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

,改变你的Facebook的设置

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

为连接在截屏。 enter image description here

因此,本地只是禁用和在生产中购买SSL证书它将起作用。

+0

我看不到这些设置,它是一个旧的截图?我正在看,我目前将访问https://developers.facebook.com/apps/ABC/summary,但没有在任何地方看到“安全浏览”选项 – Steve 2013-05-02 18:51:45

+0

这不是developers.facebook.com只是去facebook。 com和改变。因此,通过使用当前的开发应用程序,他们可以安全地浏览那些只能访问应用程序的人。但在生产中,您需要为您的APP购买SSL。 – 2013-05-03 02:10:06

+0

正确,所以我的应用程序必须连接SSL?这是一个痛苦,如果是这样的话。会话转储还在说twitter。我甚至把facebook作为第一个提供商。 – Steve 2013-05-03 11:30:35