设计omniauth-facebook redirect_uri不是绝对URI

问题描述:

非常感谢您的建议。 我迁移到Heroku和我有以下问题facebook omniauth身份验证。当我与Facebook认证回调URL不工作,我会发送到网页https://barteringapps.herokuapp.com/#_=_与以下日志错误信息:设计omniauth-facebook redirect_uri不是绝对URI

"redirect_uri isn't an absolute URI. Check RFC 3986.","type":"OAuthException","code":191,"fbtrace_id":"BT1wrRRo64m" 
method=GET path="/" host=barteringapps.herokuapp.com request_id=8913218f-703d-4da0-9388-f59d3a97bb69 fwd="81.171.81.200" dyno=web.1 connect=0ms service=11ms status=200 bytes=13425 

发展正常运作,当我设置回调URLdevise.rb并在Facebook的应用程式的设定http://127.0.0.1:5000/users/auth/facebook/callback

因此给予更详细的日志(我省略不重要的相关信息):

  1. method=GET path="https://*.com/users/sign_in" host=barteringapps.herokuapp.com fwd="81.171.81.200" status=200 
    
  2. 点击的链接登录我点击了登录与Facebook

    method=GET path="https://*.com/users/auth/facebook" host=barteringapps.herokuapp.com fwd="81.171.81.200" status=302 
    INFO -- omniauth: (facebook) Request phase initiated. 
    
  3. 回调从脸书,我注意到路径不包括我的主机

    method=GET path="https://*.com/users/auth/facebook/callback?code='sometoken'" host=barteringapps.herokuapp.com fwd="81.171.81.200" 
    

我已经搜索#1的解决方案,我跟着此指令 Devise omniauth-facebook redirect_uri Url must absolute

  1. 我加入:client_options
  2. 我配置绝对路径像这样在devise.rb

    callback_url: ENV['SERVER_ROOT']+'/users/auth/facebook/callback' 
    
  3. 在Heroku的设置,我添加了SERVER_ROOT环境变量

我也有以下的疑问,因为我有包膜可变因素很多问题,我安装工头宝石为我的发展。 Foreman作为我的web服务器并从env文件加载ENV变量。我也有一个Procfile与follwing代码:

web: bundle exec rails s 

.env 
Procfile 

的问题是生产还是与PUMA和不Procfile

=> Booting Puma 
=> Rails 5.0.1 application starting in production on http://0.0.0.0:21255 
=> Run `rails server -h` for more startup options 
[4] Puma starting in cluster mode... 

我找到了解决办法听到运行,在巴西的Rails的谷歌论坛社区。我用英文阅读翻译过的文章,发现了以下问题。

在我config/enfironments/production.rb文件我有

config.action_mailer.default_url_options = { host: 'barteringapps.herokuapp.com' } 

我能够通过添加https://到ADRESS来解决这个问题。这是代码:

config.action_mailer.default_url_options = { host: 'https://barteringapps.herokuapp.com' } 

现在Facebook登录工作。 这是我发现这个问题的讨论: https://groups.google.com/d/topic/rails-br/PqMHviahB50/discussion

该帖子的作者是迪奥戈·阿泽维多戈维亚