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
Archivado en (Cakephp, Software Libre)
El contenido este blog está bajo licencia Creative Commons (Reconocimiento - Compartir igual) - desarrollo javiermaties.com