错误的facebook登录回调网址端口,使用rails设计omniauth

时间:2014-04-03 12:05:35

标签: ruby-on-rails facebook devise omniauth cloud-hosting

我可以在本地使用我的rails应用程序并使用rails devise和omniauth与facebook连接,但是当我想部署它时,facebook回调端口是错误的。 点击“使用facebook登录”后,当我输入登录信息时,它会将我重定向到Facebook,然后它会回复我的应用程序:

http://myapp.cleverapps.io:8080/users/auth/facebook/callback?code=thelongcode#_=_

但它说“糟糕!Google Chrome无法连接到myapp.cleverapps.io:8080” 同时我打电话

http://myapp.cleverapps.io/users/auth/facebook/callback?code=thelongcode#_=_

它有效。

我不明白为什么它在localhost:3000中工作而不在我的部署环境中。

为什么omniauth会向网址添加8080?我可以在这一行中将它设置为80吗?

devise_for :users, [...] :controllers => {[...] :omniauth_callbacks => "users/omniauth_callbacks"}

1 个答案:

答案 0 :(得分:0)

  1. 登录https://developers.facebook.com
  2. 点击“应用”菜单,然后从下拉列表中点击您的应用。
  3. 点击“设置”。修改您的“网站网址”:即http://myapp.cleverapps.io/(或者尝试http://myapp.cleverapps.io:8080/,尽管此替代方案可能是当前设置并且是问题的根本原因)
  4. 修改“移动网站网址”:即http://localhost:3000/
  5. 使用这些更新的设置,您应该能够在开发和生产中使用Facebook OmniAuth成功登录。

    此外,请仔细检查您的配置是否允许在生产中使用Facebook ID和密码(存​​储在.ENV文件中)(可在/config/initializers/devise.rb中设置)

    即。 devise.rb

      if Rails.env == 'development' || Rails.env == 'production'
          config.omniauth :facebook, ENV['FACEBOOK_ID'], ENV['FACEBOOK_SECRET']
      end
    

    即。 .env

    FACEBOOK_ID=123456789876543
    FACEBOOK_SECRET=1aa11a111111a1aaa1a1aa11aaa11a11