使用omniauth的谷歌open_id连接失败

我正在尝试向我的应用添加open-idfunction,我正在使用omniauth和omniauth-openid gems。

我已经完成了安装步骤,将其作为中间件添加到初始化程序中,

require 'omniauth-openid' require 'openid/store/filesystem' Rails.application.config.middleware.use OmniAuth::Builder do provider :open_id, :store => OpenID::Store::Filesystem.new('/tmp') end 

以及用于回调的路由

 match '/auth/:provider/callback' => 'callback#myauthentication' 

当我尝试点击此url时,连接到谷歌提供商

 http://[mydomain]/auth/open_id?openid_url=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid 

我每次都得到连接失败错误

对于雅虎 http:// [mydomain] /auth/open_id?openid_url=http%3A%2F%2Fme.yahoo.com%2F

如果我尝试使用yahoo open id,即使正确validation后我也会收到invalid_credentials错误更新1:我正在使用apache web服务器和thin / webrick应用服务器。 我validation了如果我不在apache web服务器后面并直接以localhost:3000运行它可以正常工作。 为什么omniauth表现不同

试试这个gemhttps://github.com/zquestz/omniauth-google-oauth2 ,我用它做了很好的结果。