Аутлогическая интеграция OpenID - PullRequest
9 голосов
/ 19 мая 2010

У меня проблемы с установкой аутентификации OpenId при работе с Authlogic. Похоже, что проблема возникла с изменениями в плагине open_id_authentication. Из того, что я читал до сих пор, нужно перейти от использования гемов к использованию плагинов.

Вот что я сделал до сих пор, чтобы работала интеграция с Authlogic-OpenID:

  1. Удалены соответствующие драгоценные камни:
    • 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 не удаляет эти драгоценные камни?

Ответы [ 3 ]

3 голосов
/ 08 июня 2010

У меня сейчас та же проблема, но она исправлена ​​только после установки гема rack-openid.Я попрошу их добавить rack-openid в необходимые библиотеки по документации

3 голосов
/ 12 июня 2010

Я прошел через те же неприятности, что и вы. Может быть, вы должны просто проверить это, чтобы все заработало:

http://github.com/shripadk/authlogic_openid_selector_example

Сюда также входит переполнение стека, например, автоматическая регистрация openid. Я разместил пример приложения на heroku, чтобы вы могли попробовать его перед оформлением заказа.

0 голосов
/ 20 мая 2010

Не знаю, как все работает в OSX, но в Linux, если я устанавливаю гемы как обычный пользователь, они помещаются в мой домашний каталог, а если я устанавливаю их с помощью sudo, они переходят в системный каталог.

У меня тоже были проблемы с правами доступа к драгоценным камням, и мне пришлось явно установить GEM_PATH в моей оболочке, чтобы рубин загружал драгоценные камни из определенного места.

  • Появляются ли эти старые самоцветы, если вы запускаете sudo gem list?
  • У вас установлены гемы в вашем домашнем каталоге, а также в /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8?

Редактировать

Хорошо, я бы запустил сеанс irb и посмотрел бы, что произойдет, если вы явно откроете require драгоценных камней.

$ irb
> require 'authlogic'
> require 'authlogic-oid'
...

Edit:

Если гем authlogic-oid установлен и появляется при запуске sudo gem list, попробуйте запустить irb как суперпользователь. Если затем вы можете потребовать authlogic-oid, у вас есть проблема с разрешениями: некоторые или все файлы gem доступны только для чтения.

Если это не сработает, у вас, вероятно, проблема с загрузочным путем - ruby ​​не знает, где искать установленные вами гемы. В этом случае ваш authlogic драгоценный камень, вероятно, установлен в другом месте, чем ваш authlogic-oid драгоценный камень.

...