4

我正在尝试向我的应用程序添加 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的行为不同

4

1 回答 1

0

试试这个 gem https://github.com/zquestz/omniauth-google-oauth2,我用它取得了很好的效果。

于 2013-07-26T13:16:06.933 回答