繁体   English   中英

omn​​iauth与facebook不致力于生产

[英]omniauth with facebook not working on production

我正在使用我的rails应用程序中的omniauth,我已经使用facebook和twitter按钮进行签名,当我在网站上放置facebook时,url提交localhost:3000,一切正常,但是当我将网站上传到heroku时并在站点URL更改为sitename.heroku.com,twiiter登录按钮工作,但Facebook按钮不起作用...

您可能需要向我们提供更多信息(你的意思是facebook按钮不起作用?你收到错误消息吗?如果是,那么什么?你的日志说什么?)

但是,这很有可能是你的问题:在heroku上使用omniauth facebook身份验证存在一个已知问题。 您需要在config / initializers / omniauth.rb文件中添加对SSL证书文件的显式引用。 更改您的Facebook配置行以包含'client_options'哈希,如下所示:

provider :facebook, 'YOUR_APP_ID', 'YOUR_SECRET_KEY', 
           {:scope => 'PERMISSION_1, PERMISSION_2, PERMISSION_3...', :client_options => {:ssl => {:ca_file => '/usr/lib/ssl/certs/ca-certificates.crt'}}}

如果要在本地主机上进行测试并保持生产环境正常工作,您可以:

1-仅为开发目的创建新的Facebook应用程序

2-将站点URL字段设置为: http://localhost:3000/

3-然后编辑/config/initializers/omniauth.rb文件以匹配以下内容:

OmniAuth.config.logger = Rails.logger

Rails.application.config.middleware.use OmniAuth::Builder do
  if Rails.env.development?
    OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
    provider :facebook, 'DEV_APP_ID', 'DEV_APP_SEVRET'
  else
    provider :facebook, 'DEPLOY_APP_ID', 'DEPLOY_APP_SECRET'
  end
end

最后重新启动rails server ,您应该能够通过新应用程序登录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM