【发布时间】:2011-12-01 04:13:09
【问题描述】:
我的 Omniauth 集成适用于本地开发,但在 google 暂存时失败。
require 'omniauth/openid'
require 'openid/store/memcache'
Rails.application.config.middleware.use OmniAuth::Builder do
OmniAuth.config.full_host = "http://xx.xx.xxx/"
# dedicated openid
provider :open_id, OpenID::Store::Memcache.new(Dalli::Client.new), :name => 'google', :identifier => 'https://www.google.com/accounts/o8/id'
end
我收到一条错误消息:
于 2011 年 12 月 1 日 02:22:20 +0000 开始 GET "/auth/failure?message=invalid_credentials" for 58.71.19.178 由 ErrorsController#routing 作为 HTML 处理 参数:{"message"=>"invalid_credentials", "a"=>"auth/failure"} 渲染 public/404.html (0.1ms) Completed 404 Not Found in 1ms (Views: 0.6ms | ActiveRecord: 0.0ms)
另外,我的 OmniAuth.config.full_host 中的 ip 也不相同,这可能是导致问题的原因吗?
【问题讨论】:
-
我认为这可能与 https-http monkey patch 有关,其中请求是从 https 发出的,并且 OpenID 的 return_to 设置为 http。但是尝试他们的猴子补丁也没有解决问题。
-
终于用openid-for-rails-behind-apache的这个猴子补丁解决了问题