我正在尝试向我的应用程序添加 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'
当我尝试点击这个网址时,连接到 google provider
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
Furthur,如果我尝试使用 yahoo open id ,即使在正确验证后,我也会收到 invalid_credentials 错误
更新 1:
我正在使用 apache 网络服务器和瘦/webrick 应用服务器。我验证了如果我不在 apache 网络服务器后面并直接作为 localhost:3000 运行,它工作正常。为什么 omniauth 行为不同
最佳答案
试试这个 gem https://github.com/zquestz/omniauth-google-oauth2 ,我用它取得了很好的结果。
关于ruby-on-rails - 使用 omniauth 连接 google open_id 失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12908608/