2010-05-19 19 views
9

Tengo dificultades para obtener la autenticación OpenId trabajando con Authlogic. Parece que el problema surgió con los cambios en el complemento open_id_authentication. Por lo que he leído hasta ahora, uno necesita cambiar de usar gemas a usar complementos.Integración Authlogic OpenID

Esto es lo que he hecho hasta ahora para conseguir la integración Authlogic-OpenID de trabajo:

  1. eliminados gemas relevantes:
    • authlogic
    • authlogic-OID
    • rack openid
    • rubí -openid *
    • Instalado, configurado e iniciado la muestra authlogic aplicación (http://github.com/binarylogic/authlogic_example)--works como se esperaba) Esto requiere:
    • instalar el authlogic (2.1.3) gema ($ sudo gem install authlogic)
    • la adición de una dependencia (config.gem "authlogic") en el fichero de environment.rb.
    • migración agregada para agregar soporte de identificación abierta al modelo de usuario; ejecutó migración; columnas agregadas como se esperaba
    • realizaron cambios en UsersController y UserSessionsController para usar bloques para guardar cada uno.
    • realizado cambios en los nuevos usuarios-vista de sesiones de identificación de la ayuda abierta (f.text_field: openid_identifier) ​​
    • instalado open_id_authentication plug-in ($ script/plugin de instalar git: //github.com/rails/open_id_authentication.git)
    • instaló el complemento authlogic-oid ($ script/plugin install git: //github.com/binarylogic/authlogic_openid.git)
    • instaló el complemento ($ script/plugin install git: //github.com/glebm/ruby -openid.git)
    • reiniciado mongrel (CTRL-C; $ script/server)

Mogrel no se pudo iniciar, devolver el siguiente error:

/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 

Sospecho que esto está relacionado con la gema rack openid, pero como era dependiente de la gema de rubíes-openid, se retiró cuando el la gema ruby-openid fue removida. Quizás esto se puede instalar como un complemento.

Cualquier ayuda con este asunto es muy apreciada: estoy a punto de abandonar la integración con OpenId.

* ruby-openid (2.1.2) está instalado en /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8. No estoy seguro si esto está afectando algo. En cualquier caso, no estoy seguro de cómo desinstalarlo o si debería.

** editar **

Parece que hay una serie de gemas en el directorio /Library/Ruby/Gems/1.8/gems que pueden estar causando un problema:

  • authlogic- oid (1.0.4)
  • rack-openid (1.0.3)
  • rubí openid (2.1.7)

Preguntas: - ¿por qué no la lista de comandos lista joya estas joyas? - ¿Por qué el comando gem uninstall no elimina estas gemas?

Respuesta

0

No estoy seguro de cómo funcionan las cosas en OSX, pero en Linux si instalo gems como un usuario normal se ponen en mi directorio personal, y si las instalo usando sudo van a un directorio del sistema.

También he tenido problemas de permisos con gemas, y tuve que establecer explícitamente un GEM_PATH en mi shell para obtener ruby ​​para cargar gemas desde una ubicación específica.

  • ¿Las gemas antiguas aparecen si ejecuta sudo gem list?
  • ¿Tiene gemas instaladas en su directorio de inicio así como en /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8?

Editar:

Ok, lo despediría una sesión de irb y ver lo que sucede cuando se require las gemas de forma explícita.

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

Editar:

Si está instalado el authlogic-oid joya, y aparece cuando se ejecuta sudo gem list, intente iniciar irb como superusuario. Si puede entonces requerir authlogic-oid, tiene un problema de permisos: algunos o todos los archivos gem son de solo lectura root.

Si eso no funciona, es probable que tenga un problema con la ruta de carga: Ruby no sabe dónde buscar las gemas instaladas. En ese caso, su gema authlogic probablemente esté instalada en una ubicación diferente a su gema authlogic-oid.

+0

sudo gema lista no enumera estas gemas. Tengo gemas instaladas en tres ubicaciones: /Library/Ruby/Gems/1.8/gems, /craibuc/.gem/ruby/1.8/gems, y /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr /lib/ruby/gems/1.8/gems. – craig

+0

¿Desinstalar una gema es tan fácil como eliminar el directorio de la gema? – craig

+0

Sí, a menos que también se instalen ejecutables en otros lugares (como es el caso de 'rails' y' haml' por ejemplo) – nfm

3

tengo el mismo problema aquí, pero lo solucioné instalando la gema rack-openid. Les pediré que agreguen rack-open a las bibliotecas requeridas en la documentación

3

Pasé por las mismas molestias que usted. Tal vez usted sólo debe comprobar esto, han conseguido trabajar todo:

http://github.com/shripadk/authlogic_openid_selector_example

Esto incluye un registro automático stackoverflow como openid también. He alojado una aplicación de ejemplo en heroku para que la pruebe antes de finalizar la compra si lo desea.