【问题标题】:OmniAuth connection failed with facebook callbackOmniAuth 连接因 facebook 回调而失败
【发布时间】:2013-05-01 20:59:04
【问题描述】:

我正在使用 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 返回=1 errno=0 state=SSLv3 读取服务器证书 B:证书验证失败

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

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

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

【问题讨论】:

    标签: ruby-on-rails ruby facebook omniauth


    【解决方案1】:

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

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

    并将您的 Facebook 设置更改为

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

    如屏幕截图所示。

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

    【讨论】:

    • 我看不到这些设置,是旧截图吗?我在看,我目前要去developers.facebook.com/apps/ABC/summary,但在任何地方都看不到“安全浏览”选项
    • 这不是developers.facebook.com 只是去facebook.com 和改变。因此,通过使用您当前禁用安全浏览的开发应用程序,这些人只能访问该应用程序。但在生产中,您需要为您的 APP 购买 SSL。
    • 对,所以我的应用必须与 SSL 连接?如果是这样的话,那就太痛苦了。会话转储还在说 twitter。我什至把 facebook 作为第一个提供者。
    • 你是否用 match "auth/:provider/callback" => "sessions#create" 替换了路由,它说的是 twitter,因为路由已被最新替换。
    • 你能检查一下这个解决方案https://gist.github.com/vargeorge/3768187
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2020-02-11
    相关资源
    最近更新 更多