我很難獲得與Authlogic一起使用的OpenId身份驗證。看起來問題出現在open_id_authentication插件的更改中。從我迄今爲止閱讀的內容中,需要從使用寶石切換到使用插件。Authlogic OpenID集成
這是我迄今所做獲得Authlogic,OpenID的整合工作:
- 刪除相關的寶石:
- authlogic
- authlogic - 舊
- 機架的OpenID
- 紅寶石-openid *
- 安裝,配置並啓動authlogic示例應用程序(http://github.com/binarylogic/authlogic_example)--works如預期。這需要:
- 安裝authlogic(2.1.3)gem($ sudo gem install authlogic)
- 將依賴項(config.gem「authlogic」)添加到environment.rb文件。
- 增加了遷移功能,爲用戶模型添加開放標識支持;跑遷移;按預期添加列
- 對UsersController和UserSessionsController進行了更改,以使用塊來保存每個列。
- 到新的用戶會話進行更改瀏覽支持開放ID(f.text_field:openid_identifier)
- 安裝open_id_authentication插件($腳本/插件安裝的git://github.com/rails/open_id_authentication.git)
- 安裝了authlogic-oid插件($ script/plugin install git://github.com/binarylogic/authlogic_openid.git)
- 安裝了插件($ script/plugin install git://github.com/glebm/ruby (CTRL-C; $腳本/服務器)
Mogrel啓動失敗,返回以下錯誤:
/Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- rack/openid (MissingSourceFile)
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/plugins/open_id_authentication/lib/open_id_authentication.rb:3
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/plugins/open_id_authentication/init.rb:5:in `evaluate_init_rb'
from ./script/../config/../vendor/rails/railties/lib/rails/plugin.rb:146:in `evaluate_init_rb'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings'
from ./script/../config/../vendor/rails/railties/lib/rails/plugin.rb:142:in `evaluate_init_rb'
from ./script/../config/../vendor/rails/railties/lib/rails/plugin.rb:48:in `load'
from ./script/../config/../vendor/rails/railties/lib/rails/plugin/loader.rb:38:in `load_plugins'
from ./script/../config/../vendor/rails/railties/lib/rails/plugin/loader.rb:37:in `each'
from ./script/../config/../vendor/rails/railties/lib/rails/plugin/loader.rb:37:in `load_plugins'
from ./script/../config/../vendor/rails/railties/lib/initializer.rb:348:in `load_plugins'
from ./script/../config/../vendor/rails/railties/lib/initializer.rb:163:in `process'
from ./script/../config/../vendor/rails/railties/lib/initializer.rb:113:in `send'
from ./script/../config/../vendor/rails/railties/lib/initializer.rb:113:in `run'
from /Users/craibuc/NetBeansProjects/authlogic_example/config/environment.rb:13
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/activesupport/lib/active_support/dependencies.rb:156:in `require'
from /Users/craibuc/NetBeansProjects/authlogic_example/vendor/rails/railties/lib/commands/server.rb:84
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:31:in `require'
from script/server:3
我懷疑這是與機架的OpenID的寶石,但因爲它是依賴於紅寶石OpenID的寶石,它被刪除時,紅寶石openid寶石被刪除。也許這可以作爲插件安裝。
對此事的任何幫助都非常感謝 - 我正要放棄OpenId集成。
* ruby-openid(2.1.2)安裝在/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8。我不確定這是否會影響任何事情。無論如何,我不知道如何卸載它,或者我應該如何卸載它。
**編輯**
看來,有一些在/Library/Ruby/Gems/1.8/gems目錄寶石可能會引發一個問題:
- authlogic- oid(1.0.4)
- rack-openid(1.0。3)
- 紅寶石的OpenID(2.1.7)
問題: - 爲什麼不寶石list命令可以列出這些寶石? - 爲什麼gem uninstall命令不能刪除這些寶石?
sudo gem list沒有列舉這些寶石。 我在三個位置安裝了gem:/Library/Ruby/Gems/1.8/gems,/craibuc/.gem/ruby/1.8/gems和/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr /lib/ruby/gems/1.8/gems。 – craig 2010-05-20 02:03:20
卸載gem就像刪除gem目錄一樣簡單嗎? – craig 2010-05-20 02:04:58
是的,除非它的其他地方也安裝了可執行文件(例如'rails'和'haml') – nfm 2010-05-20 02:12:29