Beta2 Sistema de Login
Vamos a hacer uso de la libreria Auth que sirve justamente para facilitar toda esta tarea de autenticacion de usuarios. Suponiendo que tenemos la siguiente tabla:
La aplicacion estara compuesta por un controller (principal_controller) con 2 acciones: index y login. Las 2 vistas correspondientes y el modelo correspondiente asociado con la tabla Usuarios.
Vista login.phtml. Es solo un formulario que utiliza los helpers de KumbiaPHP Beta2
<?php echo View::content(); ?>
<?php echo Form::open("principal/login"); ?>
<?php echo Form::label("Usuario","login"); ?>
<?php echo Form::text("login"); ?>
<?php echo Form::label("Password","password"); ?>
<?php echo Form::pass("password"); ?>
<?php echo Form::submit("Ingresar"); ?>
<?php echo Form::close(); ?>
Accion 'login' en el controller:
public function login(){
if (Input::hasPost("login","password")){
$pwd = Input::post("password");
$usuario=Input::post("login");
$auth = new Auth("model", "class: usuarios", "login: $usuario", "password: $pwd");
if ($auth->authenticate()) {
Router::redirect("principal/index");
} else {
Flash::error("Falló");
}
}
}
Con el if se revisa que lleguen datos via post. Luego se crea una nueva instacia de la clase Auth pasandole como parametros el modelo “usuarios”, y la variables $pwd y $usuario.
if ($auth->authenticate())
Se usa para saber si la auteticacion fue correcta.
if(Auth::is_valid())
Se usa para saber si hay un usuario logueado.
$this->telefono=Auth::get('telefono');
$this->edad=Auth::get('edad');
Se usa para recuperar datos de la tabla Usuarios del usuario logueado.
Auth::destroy_identity();
Se usa para terminar la sesion actual del usuario logueado.