Si Puedo, una utopia

Saltar al contenido
Si Puedo

Cakephp, Software Libre »

Integración de Tractis Identity Verifications con CakePHP [v0.2]

Publicado el Jueves 30 Julio 2009

Hace poco que he vuelto a retomar el tema de la identificación con Tractis Identity Verifications gracias a Manolo Ruiz que me lo recordó ;)

Atenea tech ha desarrollado un módulo para poder usarlo con Drupal con el que se puede conectar de una forma muy sencilla, pero yo lo quiero usar con CakePHP, asi que basándome en este he preparado uno para mi framework favorito ;)

El ejemplo lo puedes comprobar en la pagina http://wifi.planetalmeria.com/usuarios/tractis, puedes acceder usando tu certificado. Si no dispones de un certificado puedes descargar uno de pruebas (Password:1111)

La clase usada es esta:

/* Constantes */
define('API_KEY', ''); // consigue tu apikey en https://www.tractis.com/identity_verifications
define('URL_OK', ''); // URL de destino una vez nos hemos identificado

class Tractics
{

var $status;

function iniciar()
{
 $_GET['api_key'] = API_KEY;
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_POST, true);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $_GET);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_URL, 'https://www.tractis.com/data_verification');
 curl_exec($ch);
 $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
 curl_close($ch);
 return $status;
}
}

Bastante simple ;) ademas se puede descargar desde aquí, este archivo (tractis.php) se coloca en la carpeta vendors de tu app.

La Api Key de Tractis se consigue registrándose en la página.

Ahora solo es llamarlo en el controller


App::import('Vendor', 'tractis');

class Nombre_del_Controller extends AppController
{
 variables

function tractis()
    {
// Vacio
    }

    function tractisok()
    {
$tractis = new Tractics;
$idtractis = $tractis->iniciar();
if ($idtractis==200) {
$user_data = array(
'tractis' => array(
'name' => $_GET['tractis:attribute:name'],
'dni' => $_GET['tractis:attribute:dni'],
'issuer' => $_GET['tractis:attribute:issuer'],
),
);
$this->set('usuario', $user_data);
} else {
$this->Session->setFlash('Idenficacion no realizada');
}
    }
}

Y en las views:

tractis.ctp


<?php echo $form->create(null, array('url' => 'https://www.tractis.com/verifications'));?>
<?php echo $form->input(null,array('type'=>'hidden', 'name'=>'api_key', 'value'=>API_KEY));?>
<?php echo $form->input(null,array('type'=>'hidden', 'name'=>'notification_callback', 'value'=>URL_OK));?>
<?php echo $form->submit('Hacer login', array('name'=>'commit'));?>
<!-- OPCIONAL: el campo public_verification es opcional -->
<?php echo $form->input(null,array('type'=>'hidden', 'name'=>'public_verification', 'value'=>true));?>
<?php echo $form->end(); ?>

y tractisok.ctp


<?php if (isset($usuario)) { ?>
Datos del usuario: <?php print_r($usuario); ?>
<?php } else {?>
Debes <?php echo $html->link('identificarte', '/usuarios/tractis', array('class'=>'add')); ?>
<?php } ?>

y listo.

pd: para usar con el componente Auth

4 Comentarios »

  1. David Blanco Dice:

    Julio 30, 2009 en 9:42 pm

    Hola Javier,

    ¡Genial!. El código tiene muy buena pinta. Muchas gracias por compartirlo.

    Pronto lo añadiremos a la lista de plugins disponibles en la página de Tractis Identity.

    Pensabamos anunciar el plugin de PHP la próxima semana y te nos has adelantado :D

    Un saludo,

    David

  2. Negonation Blog » Blog Archive » Tractis Identity: Autenticación con DNI-e en CakePHP Dice:

    Agosto 5, 2009 en 7:02 am

    [...] en desarrollo web, ha creado un plugin para CakePHP, su framework favorito, y ha compartido el código con el resto de la comunidad. Desde aquí, ¡muchas gracias!. Javier también ha montado un ejemplo [...]

  3. Tractis Identity Verifications con el componente Auth de CakePHP | Si Puedo - Accesibilidad, Software Libre y algo más Dice:

    Agosto 7, 2009 en 10:30 am

    [...] hace solo unos días comentaba como integrar Tractis Identity Verifications con CakePHP ahora le toca el turno a como usarlo con [...]

  4. Negonation Blog » Blog Archive » Tractis Identity: Integración con el componente Auth de CakePHP Dice:

    Agosto 7, 2009 en 5:18 pm

    [...] Matíes no para. Tras desarrollar la integración de Tractis Identity con CakePHP, hoy mismo ha anunciado en su blog la integración de Tractis Identity con el componente Auth de [...]

Dejar un comentario

El contenido este blog está bajo licencia Creative Commons (Reconocimiento - Compartir igual) - desarrollo javiermaties.com