From 48fb7168a8b9625da8ea0a9ac694de1d96735a14 Mon Sep 17 00:00:00 2001 From: Geoffrey Frogeye Date: Sun, 24 Apr 2016 15:54:35 +0200 Subject: [PATCH] api/deconnexion --- api/commun.php | 18 +++++++++++++++++- api/connexion.php | 59 ----------------------------------------------------------- api/utilisateur/connexion.php | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ api/utilisateur/deconnexion.php | 23 +++++++++++++++++++++++ 4 files changed, 99 insertions(+), 60 deletions(-) delete mode 100644 api/connexion.php create mode 100644 api/utilisateur/connexion.php create mode 100644 api/utilisateur/deconnexion.php diff --git a/api/commun.php b/api/commun.php index 386ba31..06c0824 100644 --- a/api/commun.php +++ b/api/commun.php @@ -30,7 +30,22 @@ function donne($parametre) { // Vérifie si le paramètre est donné } } -mysqli_report(MYSQLI_REPORT_ALL); +function verifierJeton($jeton) { + global $db, $login, $droit; + $requete = $db->prepare("SELECT Utilisateurs.login, Utilisateurs.droit FROM Utilisateurs JOIN Sessions ON Utilisateurs.login=Sessions.utilisateur WHERE Sessions.jeton=?"); + $requete->bind_param("s", $jeton); + $requete->execute(); + $requete->bind_result($login, $droit); + if (!$requete->fetch()) { + retour("jeton_invalide"); + } + $requete->close(); +} + +// Variables globales + +$login = ""; +$droit = 0; // Connexion à la base de donnée $db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); @@ -45,4 +60,5 @@ if (!defined("CRYPT_BLOWFISH") || !CRYPT_BLOWFISH) { } + ?> diff --git a/api/connexion.php b/api/connexion.php deleted file mode 100644 index 6c37f10..0000000 --- a/api/connexion.php +++ /dev/null @@ -1,59 +0,0 @@ -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]); - -?> diff --git a/api/utilisateur/connexion.php b/api/utilisateur/connexion.php new file mode 100644 index 0000000..5de62e2 --- /dev/null +++ b/api/utilisateur/connexion.php @@ -0,0 +1,59 @@ +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]); + +?> diff --git a/api/utilisateur/deconnexion.php b/api/utilisateur/deconnexion.php new file mode 100644 index 0000000..4f3e674 --- /dev/null +++ b/api/utilisateur/deconnexion.php @@ -0,0 +1,23 @@ +prepare("DELETE FROM Sessions WHERE jeton=?"); +$requete->bind_param("s", $jeton); +$requete->execute(); +$requete->close(); + +retour("ok"); + +?> -- libgit2 0.21.2