【问题标题】:Authlogic OpenID error: uninitialized constant OpenIdAuthentication::InvalidOpenIdAuthlogic OpenID 错误:未初始化的常量 OpenIdAuthentication::InvalidOpenId
【发布时间】:2011-01-06 18:05:47
【问题描述】:

使用 authlogic 2.1.3 和 authlogic-oid 1.0.4,只要 rails 碰到向 OpenID 提供程序发出请求的控制器,我就会收到以下错误:

uninitialized constant OpenIdAuthentication::InvalidOpenId

我还安装了以下内容:

  • rack-openid (0.2.1)
  • ruby-openid (2.1.7)
  • rails/open_id_authentication 插件

environment.rb 中的 Gem 配置如下:

config.gem "authlogic"
config.gem "authlogic-oid", :lib => "authlogic_openid"
config.gem "ruby-openid", :lib => "openid"

任何建议都将不胜感激,谢谢。

【问题讨论】:

    标签: ruby-on-rails openid


    【解决方案1】:

    rails/open_id_authentication 插件几天前已更新,它破坏了与 authlogic_openid gem (v=1.0.4) 的兼容性。

    你必须等到有人修复 authlogic_openid gem (the issue)

    【讨论】:

    • 感谢 Jessy - 以为我错过了一颗宝石.. 它在我的脑海里:)
    【解决方案2】:

    我在我的 authlogic_openid 分叉中解决了这个问题,请随时获取此提交:http://github.com/mreinsch/authlogic_openid/commit/9b802c347f5addebcbce945af3b5f80b3ee7b214

    【讨论】:

    • 安装此 gem 的正确方法是什么?我试过'sudo gem install authlogic-oid --git://github.com/mreinsch/authlogic_openid.git'。我应该将其安装为插件吗?如果是这样,我还需要 authlogic-oid gem (1.0.4) 吗?
    • 我希望将我的补丁放入官方 authlogic-oid,所以我没有发布 gem。您可以随时将其用作插件,或查看github.com/binaryfeed/authlogic_openid 做了什么。如果您将 authlogic_openid 作为插件安装,请务必删除 authlogic-oid gem。
    • Michael 的叉子也对我有用。非常感谢。不幸的是,这并不是我麻烦的结束。使用谷歌我得到“尝试使用存储的发现信息时出错:OpenID::TypeURIMismatch” - 使用雅虎它也不起作用并给出:401 Unauthorized [127.0.0.1/users]
    【解决方案3】:

    我遇到了同样的麻烦,我真的很想用 authlogic 打开 id,所以我从 Ryan Bates 的 railscasts 应用程序中复制了一个旧版本的插件。

    这里是链接 git@github.com:senthilnambi/open-id.git。像平常一样安装它,你应该没问题。

    希望这会有所帮助。 :)

    【讨论】:

      【解决方案4】:

      就像提供的 senthil 一样,但在 URL 处没有 @:

      脚本/插件安装 git://github.com/senthilnambi/open-id.git

      然后我抹掉不工作的旧(插件/gem)

      【讨论】:

        【解决方案5】:

        通过 railscast 170。故障排除将我带到这里。我尝试了上一张海报(mreinsch)的 authlogic_openid fork。值得庆幸的是,这个 openid_identifier 错误纠正了足够长的时间让常规登录系统正常工作,但不是 openid。

        它在块中标识的保存方法上给我一个名称错误。这显然是用来让 openid 让我登录。

        错误转储:

        用户会话控制器中的名称错误#create
        未初始化的常量 Rack::OpenID
        /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:443:in `load_missing_constant'
        /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:80:in `const_missing'
        /Sites/authlogic_b/vendor/plugins/authlogic_openid/lib/authlogic_openid/session.rb:72:in `save'
        /Sites/authlogic_b/app/controllers/user_sessions_controller.rb:8:in `create'

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-01-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-01-08
          • 2011-09-29
          相关资源
          最近更新 更多