2010-03-31 16 views

Respuesta

8

Recomiendo comenzar con Warden - manejará las bases de las sesiones para usted y le dará una buena base para construir su lógica en la cima. El complemento Rails Warden es una biblioteca bastante pequeña que ayuda a integrarlo en Rails. Ambos proyectos son bastante maduros y están bien construidos, pero aún en desarrollo activo; son buenas opciones.

Debe tener en cuenta Devise, otro marco de autenticación (como Authlogic o Restful Authentication) que se basa en Warden. Puede que no sea una buena opción para su proyecto (no fue para la mía), pero consultar la fuente podría brindarle algunas ideas sobre cómo usar Warden.

La otra cosa que señalaré es que, en términos de contraseñas hash, debe usar absolutamente bcrypt.

+0

¿El ingenio parece haber sido creado por el mismo tipo que creó Warden? es esto correcto, me gusta Warden. ¿Pero el guardián debe pasar por este "Rack"? ¿Y qué es este estante? si pudieras explicar realmente simple. ¿Esta bien? debería usarlo? – Lisinge

+1

Warden and Devise comparten algunos desarrolladores, sí. Rack es una interfaz entre los frameworks web de Ruby y los servidores en los que se ejecutan. Rails está construido sobre Rack, por lo que ya lo está usando. Y, si usas Warden y Rails Warden, no tienes que preocuparte por interactuar con Rack directamente; ellos se encargarán de eso. Hay un video que explica más sobre Rack aquí, si tiene curiosidad, pero probablemente no es algo de lo que deba preocuparse: http://railslab.newrelic.com/2009/06/05/episode-14- rack-metal – PreciousBodilyFluids

+0

bien, gracias :) – Lisinge

1

Dado que la autenticación es un problema común que ya se ha resuelto muchas veces, comenzaría investigando las soluciones que ya existen.

Por ejemplo, eche un vistazo a Restful Authentication que proporciona una buena base para la autenticación en Rails. Incluso si prefiere rodar su propio sistema, jugar con Restful Authentication y comprender cómo funciona debería darle una buena comprensión de los componentes necesarios cuando comience a construir su propio sistema.

+0

probé la Autenticación reposada y Authlogic y no creo que me queden bien.Es por eso que quiero rodar mi propio – Lisinge

+0

Estaba pensando más en la línea de disección de una de estas soluciones para entender cómo funcionan bajo el capó. No solo es un buen ejercicio de lectura de códigos, sino que una vez que haya entendido uno de estos sistemas, será bastante fácil crear su propia solución, tomar prestadas las ideas que desee y cambiar las cosas que no le agradan. –

0

revisar este artículo:

http://www.aidanf.net/rails_user_authentication_tutorial

El autor, paso a paso, a través de un marco de autenticación entera, con sugerencias de mejoras adicionales. Incluso las pruebas se discuten.

+3

Ese artículo tiene casi cuatro años y no se ajusta a las mejores prácticas actuales. Lo evitaría y buscaría recursos más actualizados. –

+0

ya lo intenté. Es viejo – Lisinge

+0

¿De verdad? ¿podría decirme dónde buscar información de "mejores prácticas"? He estado buscando un buen lugar para encontrar ese tipo de información. No tenía idea de que el artículo estaba rompiendo las convenciones. –

4

michael hartl tiene un buen libro que sale pronto y los primeros 8 capítulos están disponibles en formato pdf gratis aquí: http://www.railstutorial.org/ - cubren todo el proceso de creación de un sistema de autenticación basado en rspec muy sólido - no lo puedo recomendar lo suficiente como

+0

Lo leerán :) gracias! – Lisinge

+1

Btw, gran libro! gracias por la sugerencia – Lisinge

2

Bueno, salió un tiempo después de que hizo su pregunta, pero la mejor respuesta si está dispuesto a construir su propio sistema de autenticación en lugar de utilizar algo como Devise probablemente tendría que ser Ryan Bates' Authentication from Scratch Screencast.

+0

Después de leer ese Railscast también verificaría este: http://railscasts.com/episodes/270-authentication-in-rails-3-1 – antinome

0

Estoy de acuerdo con Ritchie ... Devise tiene algunas características muy agradables, pero no funciona bien con los demás. Para muchos casos de uso, la forma en que secuestra el enrutamiento puede hacer que su trabajo sea más difícil. En muchas situaciones, es posible que sea mejor que lances la tuya.

Devise ha causado referencias circulares en mi canalización de activos de Rails, y las configuraciones en el inicializador como instalado (en la última versión de ayer) entraron en conflicto con los valores predeterminados en la migración que generó.

He creado sistemas de autenticación de nivel empresarial, incluida la verificación de correo electrónico, la recuperación de contraseñas, etc. Y nada de eso requirió las trampas de enrutamiento que usa Devise. Si realmente necesita todas las características, puede ser para usted. Pero hay muchas razones para no usarlo también.