


<script src="https://browserid.org/include.js"></script>
<script>
navigator.id.getVerifiedEmail(function(assertion) {
if (assertion) {
// now go and verify - simple XHR will do
} else {
alert('Whooooo are you? who? who? who? who?...');
}
});
</script>
(function(){
var request,
but = document.querySelector('button'),
h1 = document.querySelector('h1');
but.addEventListener('click', function(ev) {
navigator.id.getVerifiedEmail(function(assertion) {
if (assertion) {
verify(assertion);
} else {
alert('I still don\'t know you...');
}
});
}, false);
function verify(assertion) { … }
}());
function verify(assertion) {
request = new XMLHttpRequest();
var parameters = 'assert=' + assertion;
request.open('POST', 'verify.php');
request.setRequestHeader('If-Modified-Since',
'Wed, 05 Apr 2006 00:00:00 GMT');
request.setRequestHeader('Content-type',
'application/x-www-form-urlencoded');
request.setRequestHeader('Content-length', parameters.length);
request.setRequestHeader('Connection', 'close');
request.send(encodeURI(parameters));
<?php
$url = 'https://browserid.org/verify';
$assert = $_POST['assert'];
$params = 'assertion='.$assert.'&audience=' .
urlencode('http://thewebrocks.com');
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_POST,2);
curl_setopt($ch,CURLOPT_POSTFIELDS, $params);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
{
"status": "okay",
"email": "email@example.com",
"audience": "http://thewebrocks.com",
"expires": 1323782796120,
"issuer": "browserid.org"
}
request.onreadystatechange = function() {
if (request.readyState == 4){
if (request.status && (/200|304/).test(request.status)) {
response = JSON.parse(request.responseText);
if(response.status === 'okay') {
message = 'Well, hi there, '+response.email;
var p = document.createElement('p');
p.innerHTML = message;
but.parentNode.replaceChild(p,but);
h1.innerHTML = 'Woohoo, I know you!';
}
} else{
alert('couldn\'t log you in. Sad panda now!');
}
}
};
}


