Estoy escribiendo una aplicación web usando PHP. Quiero utilizar el patrón MVC para esto, y decidí ir con CodeIgniter. Mi aplicación tendrá algunas páginas que requerirán autenticación, y algunas páginas no. Quiero diseñar esto de una manera muy genérica, para que no haya duplicación de código. ¿Puede alguien señalar alguna buena "estructura de diseño/clase" para esto?Autenticación de usuario con CodeIgniter
Respuesta
Escriba una biblioteca personalizada que puede cargar automáticamente en la aplicación del encendedor de código en cada vista de página. Debe tener funciones que:
- Autentica el usuario ie. compruebe si un usuario está conectado o no
- Regístrese, es decir. establecer una variable de sesión o algo
- la sesión se cerrará
Luego, en sus clases de controlador que puede hacer una llamada a la función de autenticación en el constructor a continuación, dependiendo del resultado continuará como normal o redirigirlos a una pantalla de inicio de sesión con un mensaje de acceso denegado.
Haga una búsqueda en la wiki de CodeIgniter para 'autenticación' y hay una serie de resultados que pueden ayudar: http://codeigniter.com/wiki/
siempre he puesto las funciones de inicio/final de sesión (así como algunas otras) en un controlador "auth". En cualquier controlador individual, puedo verificar si el usuario ha iniciado sesión viendo si $ this-> session-> userdata ('uid') está configurado. ¿Esa es una mala práctica? – Mala
estoy de acuerdo, es muy fácil crear tu propia autenticación. – Maikel
Si por "algunas páginas" se refiere a algunos controladores (la puerta de enlace a sus vistas), entonces es posible que desee investigar la herencia del controlador. Extienda el controlador CodeIgniter predeterminado con el suyo y ponga una verificación de autenticación en el constructor (verifique si la sesión está iniciada o algo así y si no está conectado, redirija a la página de inicio de sesión). Entonces, todos los controladores que requieren autenticación necesitarán extender su nuevo controlador principal. Eso es.
Diríjase a los foros de CodeIgniter y busque algunas formas diferentes de extender el controlador. Aquí hay uno http://codeigniter.com/forums/viewthread/89768/#452890
que estaba buscando en el mismo recientemente, y me encontré con un tenedor CodeIgniter llamado Kohana que incluye un bonito authentication module. Si está configurado en CI, quizás adaptar el módulo de autenticación de Kohana al CI le ahorrará algo de tiempo. Si acaba de comenzar su proyecto y PHP5 está bien de usar, considere cambiar; son marcos muy similares.
Puede ser que usted pueda usar la biblioteca CL_AUTH para CI. Lo he usado y funciona bien. Puede encontrarlo aquí http://www.jasonashdown.co.uk/cl_auth_doc/
"Ion Auth" es delgado, bien programado, algo ampliamente utilizado y mantenido activamente.
Visita GitHub y la búsqueda de CodeIgniter de autenticación o de autenticación, o comprobar el CodeIgniter Wiki, encontrará muchas bibliotecas con diferentes características .. explorar y elegir el que necesita! Pero tenga cuidado, muchos son para CI 2, y tiene que ucfirst the classes para usar con CI 3, de lo contrario, no funcionan en absoluto.
Utilice flexi auth una versión modificada de la popular biblioteca Ion Auth. Es más avanzado y hace todo el trabajo listo para usar.
flexible de autenticación es una biblioteca libre abierto usuario fuente de autenticación/inicio de sesión para su uso con el marco CodeIgniter 2.0+.
Sé que es demasiado tarde, pero espero que alguien más va a encontrar útil. ¡Salud!
- 1. Autenticación de CodeIgniter + privilegios de usuario
- 2. usuario en CodeIgniter 2.1.0
- 3. Autenticación REST en PHP (CodeIgniter)
- 4. Autenticación de usuario AD
- 5. Autenticación de usuario Silverlight
- 6. marcos de autenticación de usuario seguro, bibliotecas
- 7. ¿Hay una biblioteca de autenticación de usuario respaldada por mongodb para codeigniter?
- 8. Autenticación de usuario en Pyramid
- 9. Backbone.js y autenticación de usuario
- 10. Autenticación de usuario Django: django_auth_ldap.backend.LDAPBackend
- 11. CouchApps y autenticación de usuario
- 12. Autenticación de usuario de matraz
- 13. backbone.js + require.js + autenticación de usuario
- 14. Autenticación de usuario usando REST
- 15. MongoEngine Autenticación de usuario (django)
- 16. Suplantación de usuario con Autenticación de formularios de ASP.NET
- 17. ¿Cómo configurar el usuario administrador con gitlab con autenticación LDAP?
- 18. PayPal IPN con CodeIgniter
- 19. Editando Perfil de Usuario con Autenticación de Formularios
- 20. Autenticación Java LDAP con nombre de usuario y contraseña
- 21. Autenticación Shiro con sessionId o nombre de usuario + contraseña
- 22. Servicio de autenticación de usuario RESTful
- 23. Autenticación de usuario en Pilones + AuthKit
- 24. Django cierre la sesión del usuario con autenticación remota
- 25. Autenticación del usuario en pruebas con Django factory_boy
- 26. Usar LDAP para autenticación de usuario SVN
- 27. Spring Security: Usuario de autenticación manualmente
- 28. usando la doctrina con codeigniter
- 29. Problema de token de CSRF con CodeIgniter
- 30. Node.js autenticación del usuario mediante el pasaporte
Es posible que desee echarle un vistazo a https://github.com/delight-im/PHP-Auth, que es tanto agnóstico del marco como de base de datos. – caw