2011-04-25 11 views
5

Me gustaría implementar un sistema de autenticación de Ruby on Rails de terceros que se desarrolle activamente y ofrezca valores predeterminados razonables.¿Qué sistema de autenticación de Rails es mejor: AuthLogic, Clearance o Devise?

He reducido mi selección a AuthLogic and Clearance (thinkbot) - ¿Alguien me puede influir en cualquier dirección? En términos de requisitos, ambos funcionarían para mi proyecto a partir de lo que puedo decir. Parece que las muestras de documentación/código en ambos son bastante similares, y ambas son relativamente fáciles de configurar.

¿Alguien tiene una preferencia? Realmente me gusta el plugin de OpenID de AuthLogic, no sé si Clearance puede hacer eso.

+4

Cabeza para diseñar. – apneadiving

+0

Considere revisar su título, ya que sugiere que su pregunta es mucho más amplia de lo que realmente es (lo que hace que se marque como subjetiva), cuando de hecho solo está pidiendo una comparación entre dos opciones. –

+0

Actualizado. Gracias. –

Respuesta

7
+0

Voy a echar un vistazo, estoy leyendo sus documentos y me gusta hasta ahora! Gracias :) –

+0

El diseño es un poco desordenado, con lógica repartida entre modelos y controladores. – Doug

2

¿ya descartar Diseñar por alguna razón?

De lo contrario, es el marco de autenticación más completo y actual para Rails. En cuanto a la autenticación openID, eche un vistazo a OmniAuth, que se integra perfectamente con el dispositivo.

+0

¡Gracias, lo estoy viendo ahora! Parece que hará todo lo que necesito y algo más. –

3

He utilizado la gema restful_authentication, authLogic y Devise y me gustaría diseñar 'cos que se basa el modelo (más arriba en la pila es mejor y más fácil de rspec) y también permite que acaba de poner en una bandera admin en la tabla de usuario para administradores e ir con eso (o usar roles para cosas más complejas).

Otra joya que se ha vuelto común con es cancan for roles, por ejemplo administrador, lector, administrador, etc. (lo que quieras) con la siguiente sintaxis (del cancan gem).

<% if can? :update, @article %> 
    <%= link_to "Edit", edit_article_path(@article) %> 
<% end %> 
+0

Genial, no lo sabía. Gracias :) –

2

Preguntas sobre la autorización a menudo están mal formulados, porque todos estamos interesados ​​en diferentes aspectos.

En mi caso, tenemos una aplicación bien desarrollada (Wagn, vea http://wagn.org), y ya tiene incorporadas funciones de autenticación propias. Lo que estamos haciendo es hacer que la aplicación sea independiente del sistema de autenticación, por lo que estoy más interesado en dos dimensiones:

1) ¿Cuál es la API para la interfaz del proveedor y qué tan fácil es agregarla a mi aplicación?

Acabo de trabajar mucho para enrutar todo a través de un conjunto de métodos de clase o módulo que usa la aplicación, y un modelo para la clase AR de fabricación propia (una clase de usuario y una tabla de usuarios). Esto lleva a la siguiente parte:

2) Qué proveedores de autorización están disponibles y qué tengo que hacer para cargarlos con mi aplicación (normalmente esperaría que estuvieran en uno o más middlewares de Rack).

No necesito Idear, hace demasiado, quiero una interfaz para proveedores de autenticación externos. Mi aplicación puede proporcionar formularios que publicarán parámetros en los servicios de autenticación, pero no utilizará sus vistas o controladores de Rails.

Sospecho que esta situación es común para una determinada clase de desarrolladores.

Cuestiones relacionadas