bibliotecas / marcos de autenticación de usuarios php … ¿cuáles son las opciones?

Estoy usando PHP y el framework codeigniter para un proyecto en el que estoy trabajando, y necesito un sistema de autenticación / inicio de sesión de usuario.

Por ahora, preferiría no usar SSL (podría ser excesivo y el hecho de que estoy usando hosting compartido desalienta esto). Consideré usar openID pero decidí que dado que mi público objective generalmente no es técnico, podría asustar a los usuarios (sin mencionar que requiere duplicar la información de inicio de sesión, etc.). Sé que podría escribir una autenticación basada en hash (como sha1) ya que no se pasan datos sensibles (compararía el nivel de sensibilidad con el de stackoverflow).

Dicho esto, antes de hacer una solución personalizada, sería bueno saber si hay alguna buena biblioteca o paquete que hayas utilizado para proporcionar autenticación semiasegura. Soy nuevo en codeigniter, pero algo que se integre bien con él sería preferible. ¿Algunas ideas? (Estoy abierto a las críticas sobre mi enfoque y abierto a sugerencias sobre por qué podría estar loco no solo para usar ssl). Gracias por adelantado.

Actualización : he analizado algunas de las sugerencias. Tengo curiosidad por probar zend-auth ya que parece bien soportado y bien construido. ¿Alguien tiene experiencia con el uso de zend-auth en codeigniter (¿es demasiado voluminoso?) Y ¿tiene una buena referencia para integrarlo con CI? No necesito ningún esquema de autenticación complejo … simplemente un sistema de autorización de inicio de sesión / cierre de sesión / gestión de contraseñas.

Además, dx_auth parece interesante también, sin embargo, me preocupa que sea demasiado problemático. ¿Alguien más ha tenido éxito con esto?

Me di cuenta de que también me gustaría gestionar los usuarios invitados (es decir, los usuarios que no inician sesión / registrarse) de una manera similar a stackoverflow … por lo que cualquier sugerencia que tenga esta funcionalidad sería genial

He encontrado que dx_auth es bastante bueno en Codeigniter, y lo he usado antes. Sin duda, es la biblioteca de autenticación con más funciones para Codeigniter.

Había algunas cosas que tenía que hacer para cambiarlo, así que extendí su clase de usuario con algunas funciones para mis propósitos (algunas de sus funciones no hacen exactamente lo que cabría esperar). Aquí hay un segmento de algunas de las personalizaciones que hice:

$CI = &get_instance(); $CI->load->model("dx_auth/users"); /** * For most things, try and use the dx_auth models, * because it's already done, and some stuff is more * annoying to figure out than might be expected. * * For anything site-specific, use this model instead. * */ class UserModel extends Users { /** * Sometimes when dx_auth sucks, you have to compensate * functions that return useful results. * * @param int $id id of user to check if banned * @return int $banned returns the result (0 or 1) */ public function is_banned($id) { $query = "SELECT banned FROM users WHERE id=".(int)$id; $result=$this->db->query($query); $row = $result->row_array(); return $row['banned']; } } 

Yo uso Zend_Auth. Pero trabajo con Zend Framework en general. Por lo que he escuchado, se integra bien con CI. Con Zend_Auth uso un adaptador Db_Table y SHA1 con una sal global. Eso es suficiente para muchos propósitos, creo.

Parece que esto podría ser exactamente lo que estás buscando, si quieres que zend-auth trabaje en codeigniter. Por favor, actualice su pregunta nuevamente si encuentra que zend-auth & codeigniter es una buena combinación.

Personalmente, he descubierto que hackear dx_auth es bastante doloroso, especialmente por su falta de documentación, y me gustaría dar una oportunidad más si parece prometedor.