2010-05-19 14 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.

Cuestiones relacionadas