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 Tags: Cakephp, certificado, desarrollo, dni electronico, identificacion, tractis
El contenido este blog está bajo licencia Creative Commons (Reconocimiento - Compartir igual) - desarrollo javiermaties.com
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
Un saludo,
David
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 [...]
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 [...]
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 [...]