getMessage(); echo "Erreur lors de la vérification de l'identité"; die(); } } /** * Contacte le backend d'Asclepia pour vérifier que la session existe, que l'utilisateur existe et qu'il soit * bien premium * * @param string $token Token JWT de l'utilisateur à authentifier */ function verifyUserPremium(string $token) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "https://interface.asclepia.io/auth/user"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($curl, CURLOPT_TIMEOUT, 60); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_HTTPHEADER, [ "authorization: JWT ".$_GET["jwt"], "accept: application/json, text/plain, */*" ]); $response = curl_exec($curl); // Vérification de la réponse $httpResponseCode = curl_getinfo($curl, CURLINFO_RESPONSE_CODE); if ($httpResponseCode === 200) { $userData = json_decode($response, true); if ($userData === NULL || !isset($userData["premium"])) { echo "Echec de récupération des données utilisateur"; die(); } // Vérification du statut premium de l'utilisateur if ($userData["premium"] === FALSE) { echo "Abonnement requis."; die(); } } else { echo "Echec de l'authentification utilisateur"; die(); } }