我可以在本地使用我的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"}
答案 0 :(得分:0)
http://localhost:3000/
使用这些更新的设置,您应该能够在开发和生产中使用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