Hi,
ich möchte meinen Token für jeden Ajax Request mitsenden.
Jetzt habe ich 2 Fragen dabei.
1. Habe ich es so überhaupt richtig gemacht?
2. Wie kann ich es überprüfen ob der Token valid ist?
Bsp.
if($token != $jsToken) {
....
}
fetch_data.php
PHP Code:
<?php
if (empty($_SESSION['token'])) {
if (function_exists('mcrypt_create_iv')) {
$_SESSION['token'] = bin2hex(mcrypt_create_iv(32, MCRYPT_DEV_URANDOM));
} else {
$_SESSION['token'] = bin2hex(openssl_random_pseudo_bytes(32));
}
}
$token = $_SESSION['token'];
?>
<script src="../../../js/jquery.min.js"></script>
<meta name="csrf-token" content="<?= $token; ?>"/>
<div id="output-data">
</div>
<form method="POST">
<input type="text" name="name" class="name">
<button type="submit" class="send">Senden</button>
</form>
<script>
$(document).ready(function() {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$('.send').on('click', function(e) {
e.preventDefault();
var name = $('.name').attr('value');
$.ajax({
type: 'POST',
method: 'POST',
data: {name:name},
url: 'name.php',
success: function(data) {
$('#output-data').html(data);
}
});
});
});
</script>
name.php
PHP Code:
echo $_POST['X-CSRF-TOKEN'];
// Zeigt mir Undefined X-CSRF-TOKEN an //