prepare("SELECT mdp FROM Utilisateurs WHERE login = ?"); $requete->bind_param("s", $login); $requete->execute(); $requete->bind_result($mdpHash); if ($requete->fetch()) { if (!password_verify(donne("mdp"), $mdpHash)) { retour("identifiants_invalides"); // Mot de passe incorrect } } else { retour("identifiants_invalides"); // Identifiant inconnu } $requete->close(); } else if (donne("idCarte")) { // Si l'utilisateur s'authentifie par carte // $login = ... retour("non_implemente"); // TODO } else { retour("requete_malformee"); } // Ajout du jeton dans la base de données $jeton = random_str(JETON_TAILLE); $requete = $db->prepare("INSERT INTO Sessions (jeton, utilisateur) VALUES (?, ?)"); $requete->bind_param("ss", $jeton, $login); $requete->execute(); $requete->close(); // Récupération des données de l'utilisateur $requete = $db->prepare("SELECT droit FROM Utilisateurs WHERE login = ?"); $requete->bind_param("s", $login); $requete->execute(); $requete->bind_result($droit); $requete->fetch(); $requete->close(); retour("ok", ["jeton" => $jeton, "login" => $login, "droit" => $droit]); ?>