comprueba que los servicios se han iniciado correctamente y revisa que el puerto no esta ocupado por ningún programa que estés usando.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúOptions -Indexes
<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script src="https://browserid.org/include.js" type="text/javascript"></script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ejemplo BrowserID</title>
</head>
<body>
<script type="text/javascript">
function gotAssertion(assertion) {
if (assertion !== null) {
$.ajax({
type: 'POST',
url: 'process.php',
data: { assertion: assertion },
success: function(res, status, xhr) {
if (res === null) {
//loggedOut();
} else {
var oJson = jQuery.parseJSON(res);
if(oJson.status == 'okay'){
switch (oJson.action){
case 'new':
$('#login').html('Bienvenido ' + oJson.email);
break;
case 'old':
$('#login').html('Hola ' + oJson.email);
break;
case 'locked':
$('#login').html('Tu cuenta esta bloqueada ' + oJson.email);
break;
}
} else {
alert('Error');
}
}
},
error: function(res, status, xhr) {
alert("Error de conexion");
}
});
} else {
//loggedOut();
}
}
$(document).ready(function(){
$('#browserid').click(function() {
navigator.id.get(gotAssertion, {allowPersistent: true});
return false;
});
})
</script>
<?php if(!isset($_SESSION['email'])){ ?>
<div id="login">
<a href="#" id="browserid" title="Sign-in with BrowserID">
<img src="https://browserid.org/i/sign_in_grey.png" alt="Sign in">
</a>
</div>
<?php } else { echo "hola " . $_SESSION['email']; } ?>
</body>
</html>
<?php session_start();
class browserID {
const REMOTE_URL = 'https://browserid.org/verify';
/**
* Datos cifrados de la session.
* @var string
*/
private $_assertion;
/**
* Dominio.
* @var string
*/
private $_localURL;
/**
* Solicitud que se envia a Mozilla.
* @var array
*/
private $_QueryHTTP;
/**
* Respuesta de Mozilla.
* @var string
*/
private $_RequestJSON;
/**
* Contructor principal, define los atributos _assertion y _localURL
* Una vez definidos carga la solicitud HTTP desde el metodo build_query().
*
* @param string $assertion Datos recibidos por el $_POST.
* @param string $localURL Dominio en el que estas enviando la solicitud.
*/
public function __construct($assertion, $localURL){
$this->_assertion = $assertion;
$this->_localURL = $localURL;
$this->build_query();
}
/**
* Comprueba si fue satisfactoria la indetificación y nos devuelve un booleano.
*
* @return bool retorna true si es correcto.
*/
public function get_is_login(){
if($this->_RequestJSON->status == 'okay') return true;
}
/**
* Recogemos la dirección de correo de la indentificación
*
* @return string dirección de correo.
*/
public function get_email(){
if($this->get_is_login()===true) return $this->_RequestJSON->email;
}
/**
* Fecha en la que expira la sessión.
*
* @return int retorna la fecha en formato unix.
*/
public function get_expire(){
if($this->get_is_login()===true) return $this->_RequestJSON->expires;
}
/**
* Cambia el dominio.
*
* @param string $localURL Dominio en el que estas enviando la solicitud.
*/
public function set_local_url($url){
$this->_localURL = $url;
}
/**
* Envia la petición anteriormente creada por el metodo build_query.
*
* @param bool retorna true si todo salio correcto.
*/
public function set_http_request(){
$ctx = stream_context_create($this->_QueryHTTP);
$fp = fopen(self::REMOTE_URL, 'rb', false, $ctx);
if ($fp) {
$result = stream_get_contents($fp);
$this->_RequestJSON = json_decode($result);
return true;
}
}
/**
* Contruimos la petición HTTP que sera enviada a Mozilla.
*
*/
private function build_query(){
$httpArray = array('assertion' => $this->_assertion,
'audience' => urlencode($this->_localURL));
$data = http_build_query($httpArray);
$this->_QueryHTTP = array('http' => array( 'method' => 'POST',
'content' => $data,
'header' => "Content-type: application/x-www-form-urlencoded\r\n"
. "Content-Length: " . strlen($data) . "\r\n")
);
}
}
//Creamos el objeto y damos los argumentos, es importante enviar el dominio correcto.
$objBrowserID = new browserID($_POST['assertion'], 'www.tusitioweb.com');
if($objBrowserID->set_http_request()){
if($objBrowserID->get_is_login() === true) {
//Aqui se tendria que comprobar en nuestra base de datos si existe el usuario o en su defecto, crearlo.
$_SESSION['email'] = $objBrowserID->get_email();
$_SESSION['assertion'] = $_POST['assertion'];
$json = array( 'status' => 'okay',
'action' => 'new',
'email' => $_SESSION['email']);
}
echo json_encode($json);
}
?>