我正在尝试向我的应用程序添加 open-id 功能,我正在使用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
和一个andling回调的路由
match '/auth/:provider/callback' => 'callback#myauthentication'
当我尝试点击这个网址时,连接到谷歌提供商
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 ,即使在正确验证后我也会收到 invalid_credentials 错误更新 1:我正在使用 apache Web 服务器和 Thin/webrick 应用程序服务器。我验证了如果我不在 apache Web 服务器后面并直接作为 localhost:3000 运行,它可以正常工作。为什么omniauth的行为不同