gpt4 book ai didi

ruby-on-rails - 设计omniauth-facebook redirect_uri 不是绝对URI

转载 作者:行者123 更新时间:2023-12-04 07:40:15 24 4
gpt4 key购买 nike

非常感谢您的建议。我迁移到 Heroku,并且 facebookomniauth 身份验证遇到以下问题。当我使用 Facebook 进行身份验证时,回调 URL 不起作用,我被发送到主页 https://barteringapps.herokuapp.com/#_=_ 并显示以下日志错误消息:

"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

开发中,当我在devise.rbfacebook中设置callback-url时,该功能就会起作用应用设置为 http://127.0.0.1:5000/users/auth/facebook/callback

因此,给出更详细的日志(我省略了不重要的信息):

  1. 我点击登录链接

    method=GET path="/users/sign_in" host=barteringapps.herokuapp.com fwd="81.171.81.200" status=200
  2. 我点击使用 facebook 登录

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

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

我已经在 Stackoverflow 中搜索了解决方案,并按照以下说明进行操作 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 环境变量

我还有以下疑问,因为我在 env 变量方面遇到了很多问题,所以我为我的开发安装了 foreman gem。 Foreman 充当我的网络服务器并从 env 文件加载 ENV 变量。我还有一个包含以下代码的 Procfile:

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...

最佳答案

我在 Brasilian Rails Google 网上论坛社区中找到了解决方案。我阅读了英文翻译的帖子,发现了以下问题。

在我的config/enfironments/development.rb文件中

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

我可以通过将 https:// 添加到地址来解决此问题。这是代码:

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

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

该帖子的作者是Diogo Azevedo Gouveia

关于ruby-on-rails - 设计omniauth-facebook redirect_uri 不是绝对URI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42549803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com