He estado programando con Sinatra y Padrino desde hace bastante tiempo. Sin embargo, aún no puedo encontrar la solución de autenticación y autorización correcta para Padrino. Permítanme explicar mis expectativas y lo que ya probé.Solución de autenticación y autorización para Padrino
Con Sinatra, utilicé con éxito la gema sinatra-authentication junto con la gema role_model. Generalmente uso el Mongoid ORM para hablar con MongoDB. Estas dos gemas juntas me permiten encargarme de la authetication, proteger las rutas, verificar las funciones del usuario conectado para aplicar el control de acceso.
sinatra-authentication no funciona con Padrino, es muy específico para Sinatra. Lo intenté varias veces. Ya he probado tanto omniauth como warden con los módulos correspondientes de Padrino, pero por una razón u otra no puedo hacer que funcionen tan simplemente como la maravillosa gema sinatra-autentication.
Por lo tanto - antes de que pueda intentar implementar una solución de mi propia (o portar Sinatra-autenticación al Padrino) - ¿Puede alguien sugerir otras soluciones de autenticación y autorización? Por el momento no necesito ninguna otra fantasía: la autenticación basada en una simple base de datos funcionará perfectamente.
Uso de fuerzas padrino-admin que le permite trabajar con el modelo de la cuenta generada por el administrador (o solución eso); que puede no ser óptimo para el OP. Más importante aún, hay problemas de seguridad abiertos (https://github.com/padrino/padrino-framework/issues/384), cualquiera que implemente padrino-admin en producción debe tener en cuenta. – pithyless
Esa seguridad es un problema que se cerró hace 2 años, fyi espectadores futuros – Jonah