У меня есть веб-сайт с сервисом restful, моей проблемой является проверка существования токена аутентификации пользователя, расположенного в локальном хранилище браузера, с использованием html5.
Я использую jQuery для передачи токена от клиента к серверу, чтобы проверить, существует ли токен, но если токен существует или нет, возвращаемый код состояния http всегда равен 200, я не понимаю, почему.
Мой код для этой работы разделен на две страницы: одну для клиента и одну для сервера.
Home. html
<script type="text/javascript">
//other code
$(document).ready(function(){
localStorage.getItem("tokenMyWebSite");
document.getElementById("tokenhtml").innerHTML = localStorage.getItem("tokenMyWebSite");
if (localStorage.getItem("tokenMyWebSite") === null) {
window.location.replace("index.html");
} else {
var token = localStorage.getItem("tokenMyWebSite");
$.ajax( {
url: 'verify.php',
method: 'GET',
data: {
token: token, /* (backend): (frontend)*/
},
error:function(response){
// Simulate an HTTP redirect:
alert("Token is not present in database");
//localStorage.removeItem("tokenListenMe");
//window.location.replace("index.html");
}
});
}
});
//other code
</script>
проверить. php
<?php
require ("debug.php");
$conn = new mysqli('localhost', 'root', '', 'MyWebSite');
$token = $conn->real_escape_string($_GET["token"]);
$sql = $conn->query("SELECT token FROM credenziali where token = '$token' LIMIT 1");
if (!$sql) {
http_response_code(404);
die(mysqli_error());
}
if(mysql_fetch_array($sql) !== false) {
http_response_code(200);
} else {
http_response_code(404);
}
mysqli_close($conn);
?>