【发布时间】:2013-11-29 09:33:41
【问题描述】:
使用带有 Heroku 的 Devise trackable 模块,我注意到由于 Heroku 的转发,记录的 IP 不正确。正确的 ip 存储在 HTTP_X_FORWARDED_FOR 中,但 Devise 使用 REMOTE_ADDR,这搞砸了我的地理定位。有什么方法可以告诉 Devise 在不修改 Gem 的情况下使用 HTTP_X_FORWARDED_FOR?
谢谢!
【问题讨论】:
-
您使用的是旧版本的 Devise 吗?我没有看到您在我的 Heroku 应用程序上看到的内容 - 我看到 whatsmyip 在
current_sign_in_ip和last_sign_in_ip字段中报告的 IP 地址。 2年前的设计中有代码为它添加了测试github.com/plataformatec/devise/commit/… -
好的,我在这里取得了一些进展。看起来不是 Heroku,而是 Cloudflare 给我带来了麻烦。也就是说,仍然不确定为什么。我认为它可能将正确的地址放在 HTTP_X_REAL_IP 而不是 HTTP_X_FORWARDED_FOR 中。在禁用 Cloudflare 的情况下,我可以正常工作。可能最终就这样离开了。
标签: ruby-on-rails ruby heroku devise geolocation