Kohana A1, es un modulo de kohana el cual nos permite implementar de una forma efectiva, potente y clara, un sistema de autenticación, de una forma fácil y sencilla.
Antes de empezar a usarlo es importante considerar que el modulo usa la el constructor crypt de PHP pero usando como hash CRYPT_BLOWFISH, esto no afecta si estas usando PHP 5.3, pero si tienes este inconveniente al final del post pondré como solucionarlo(o cambiarte de hosting a uno mas actualizado).
Vamos a ver como usarlo para hacer un login.
Requisitos:
- Kohana 3.2
- Kohana A1 module
- Kohana ORM
- Kohana Database
Como dicen los requisitos para usar A1 debemos de estar conectados a una base de datos, también debemos de tener un modulo que abstraiga dicha base de datos, para esto podemos usar Kohana ORM, Automodeler, Jelly, Sprig o entre otros, si estamos haciendo pruebas yo recomiendo usar Kohana ORM, y ya en base a sus requerimientos y necesidades usar el que mas les agrade.
Instalamos kohana de modo que quede en http://localhost/kohana1/ ,creamos una base de datos yo la llamare, “system” y le pondré como datos de conexión ultra-seguros user:root password:root, recuerden activar el modulo database y ORM.
Y posteriormente nos toca, agregar el siguiente código SQL a nuestra base de datos, obviamente lo pueden modificar a su gusto, aunque de momento dejémoslo así.
CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `email` varchar(127) NOT NULL, `username` varchar(32) NOT NULL DEFAULT '', `password` char(80) NOT NULL, `token` char(80) NOT NULL DEFAULT '', `logins` int(10) UNSIGNED NOT NULL DEFAULT '0', `last_login` int(10) UNSIGNED, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;Ahora procedemos a bajar el modulo A1, que esta aquí: https://github.com/Wouterrr/A1/
Y lo ponemos en nuestro carpeta modules nombrando a la carpeta A1 de modo que quedara asi “modules/A1″.Dentro de dicha “modules/A1″ hay una carpeta config y dentro de ella un archivo llamado a1.php, bien este archivo es el archivo de configuración del modulo Kohana A1, de igual forma que se hace con todos los módulos hay que copiar este archivo a “application/config/” para poder editarlo y que no afecte directamente al modulo.
El archivo se ve de la siguiente forma:
<?php
return array(
'driver' => 'ORM', // orm/jelly/mango/sprig 'user_model' => 'user', 'cost' => 12, // Bcrypt Cost - any number between 4 and 31 -> higher = stronger hash
'cookie' => array( 'key' => 'a1_{name}_autologin', 'lifetime' => 1209600, // two weeks ),
'columns' => array( 'username' => 'username', 'password' => 'password', 'token' => 'token', //'last_login'=> 'last_login', // (optional) //'logins' => 'logins' // (optional) ),
'session' => array( 'type' => 'native' // native or database ));
Aquí pongo la descripción de cada elemento:
- driver: EL ORM que usara (ORM,jelly,mango,sprig[se pueden agregar mas pero hay que modificar el modulo o extenderlo])
- user_model: tabla(modelo) que se usara ‘user’
- cost: fuerza (tamaño de la clave) entre 4 y 31, lo ideal es 12, si ponen un numero muy grande tomar en cuenta que consumirá mas recursos.
- cookie: los datos de la cookie que generara a1, para hacer el login(nombre y duración)
- columns: aquí le estamos asignando a los items de A1, las columnas de la base de datos, es decir si en su base de datos el nombre de usuarios están en el campo nombre, tendrán que poner ‘username’ => ‘nombre’, modificando lo que esta en el array, los campos opcionales de momento no los usaremos, aunque cabe señalar que solo guardan información extra.
- session: Aquí es donde definimos el tipo de sesión, de momento y regularmente bastara con dejarlo como esta, si su aplicación correrá en varios servidores conviene ponerlo en modo database(aunque en este caso hay que hacer un par de cosas mas, espero postear pronto sobre esto)
.
No se les olvide activar le modulo en el bootstrap, el cual en la sección módulos debería verse así:






comentarios recientes