2009-01-19 50 views
12

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

+0

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

Respuesta

8

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/

+2

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

+0

estoy de acuerdo, es muy fácil crear tu propia autenticación. – Maikel

3

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

0

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.

0

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.

0

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!

Cuestiones relacionadas