У меня проблемы с установкой аутентификации OpenId при работе с Authlogic. Похоже, что проблема возникла с изменениями в плагине open_id_authentication. Из того, что я читал до сих пор, нужно перейти от использования гемов к использованию плагинов.
Вот что я сделал до сих пор, чтобы работала интеграция с Authlogic-OpenID:
- Удалены соответствующие драгоценные камни:
- authlogic
- authlogic-подъязычная
- стойка * 1012 OpenID *
- ruby-openid *
- Установил, настроил и запустил образец приложения authlogic (http://github.com/binarylogic/authlogic_example)--works, как и ожидалось. Требуется:
- установка гема authlogic (2.1.3) ($ sudo gem install authlogic)
- добавление зависимости (config.gem "authlogic") в файл environment.rb.
- добавлена миграция для добавления поддержки open-id в модель User; побежал миграцию; столбцы добавлены как ожидалось
- внесены изменения в UsersController и UserSessionsController, чтобы использовать блоки для сохранения каждого.
- внесены изменения в новое представление пользовательских сеансов для поддержки открытого идентификатора (f.text_field: openid_identifier)
- установлен плагин open_id_authentication ($ script / plugin install 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-openid.git)
- перезапущенный монгрел (CTRL-C; $ script / server)
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.
* 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)
- ruby-openid (2.1.7)
Вопросы:
- Почему команда списка драгоценных камней не перечисляет эти драгоценные камни?
- Почему команда gem uninstall не удаляет эти драгоценные камни?