Con jQuery e PHP possiamo creare e validare un token di sessione per il session storage.
Definiamo il seguente codice PHP:
header('Content-Type: application/json');
$token = md5($_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR']);
echo json_encode(['token' => $token]);
exit;
Quindi in jQuery avremo:
var setSessionToken = function() {
if( sessionStorage.getItem( "token" ) === null ) {
$.when( $.ajax( { url: "/ajax/token", dataType: "json" } ) ).done(function( response ) {
sessionStorage.setItem( token, response.token );
});
}
};
$(function() {
setSessionToken();
});
La stessa procedura può essere applicata per verificare la validità di un token:
header('Content-Type: application/json');
$sent_token = $_POST['token'];
$token = md5($_SERVER['HTTP_USER_AGENT'] . $_SERVER['REMOTE_ADDR']);
$valid = false;
if($sent_token == $token) {
$valid = true;
}
echo json_encode(['valid' => $valid]);
exit;
Quindi in jQuery avremo:
var verifySessionToken = function() {
if( sessionStorage.getItem( "token" ) === null ) {
$.post( "/ajax/token", { token: sessionStorage.getItem( "token" ) }, function( response ) {
if( !response.valid ) {
//...
}
});
}
};
$(function() {
verifySessionToken();
});
Si tratta di un metodo lato client per verificare l'integrità di una sessione.