Commit 53e75e115f565a8aa59e455b9d8d8a6af21d49c4
1 parent
d3ada92f
api/connexion 1/2
Showing
4 changed files
with
81 additions
and
2 deletions
Show diff stats
... | ... | @@ -0,0 +1 @@ |
1 | +constantes.php | ... | ... |
... | ... | @@ -0,0 +1,14 @@ |
1 | +#Configuration | |
2 | + | |
3 | +L'API a besoin d'un fichier de configuration pour se connecter à la base de donnée. Il doit se nommer `constantes.php` et doit contenir les informations de connexion sous la forme suivante : | |
4 | + | |
5 | +```php | |
6 | +<?php | |
7 | + | |
8 | +define("DB_HOST", "localhost"); | |
9 | +define("DB_USER", "10p5"); | |
10 | +define("DB_NAME", "10p5"); | |
11 | +define("DB_PASS", "uu4oshooW7"); | |
12 | + | |
13 | +?> | |
14 | +``` | ... | ... |
api/commun.php
1 | 1 | <?php |
2 | 2 | |
3 | +include_once("constantes.php"); | |
4 | + | |
5 | +// Définition des headers HTTP | |
3 | 6 | header('Access-Control-Allow-Origin: *'); // Histoire de pouvoir accéder à l'API depuis autre part que le serveur |
4 | 7 | header('Content-type: application/json'); // Histoire de faire comprendre au client que c'est du JSON |
5 | 8 | |
6 | -function retour($status, $donnees = array()) { | |
9 | +// Fonctions utiles | |
10 | +function retour($status, $donnees = array()) { // Renvoie les données passées | |
7 | 11 | $donnees['status'] = $status; |
8 | - echo json_encode($donnees); | |
12 | + echo json_encode($donnees)."\r\n"; | |
13 | + global $db; | |
14 | + if (isset($db) && $db) { | |
15 | + $db->close(); | |
16 | + } | |
17 | + exit(); | |
18 | +} | |
19 | + | |
20 | +function donne($parametre) { // Vérifie si le paramètre est donné | |
21 | + if (isset($_POST[$parametre]) && $_POST[$parametre]) { | |
22 | + return $_POST[$parametre]; | |
23 | + } else { | |
24 | + return false; | |
25 | + } | |
9 | 26 | } |
10 | 27 | |
28 | +mysqli_report(MYSQLI_REPORT_ALL); | |
29 | + | |
30 | +// Connexion à la base de donnée | |
31 | +$db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME); | |
32 | + | |
33 | +if ($db->connect_error) { | |
34 | + retour("erreur_bdd", ["message" => $db->connect_error]); | |
35 | +} | |
36 | + | |
37 | +$db->set_charset("utf8"); | |
38 | + | |
39 | +// Vérification de la présence de bcrypt | |
40 | +if (!defined("CRYPT_BLOWFISH") || !CRYPT_BLOWFISH) { | |
41 | + retour("manque_bcrypt"); | |
42 | +} | |
43 | + | |
44 | + | |
11 | 45 | ?> | ... | ... |
... | ... | @@ -0,0 +1,30 @@ |
1 | +<?php | |
2 | + | |
3 | +require_once("commun.php"); | |
4 | + | |
5 | +// Vérification des paramètres | |
6 | + | |
7 | +if (donne("login") && donne("mdp")) { | |
8 | + // Si l'utilisateur s'authentifie par login + mdp | |
9 | + $login = donne("login"); | |
10 | + $requete = $db->prepare("SELECT mdp FROM Utilisateurs WHERE login = ?"); | |
11 | + $requete->bind_param("s", $login); | |
12 | + $requete->execute(); | |
13 | + $requete->bind_result($mdpHash); | |
14 | + if ($requete->fetch()) { | |
15 | + if (!password_verify(donne("mdp"), $mdpHash)) { | |
16 | + retour("identifiants_invalides"); // Mot de passe incorrect | |
17 | + } | |
18 | + } else { | |
19 | + retour("identifiants_invalides"); // Identifiant inconnu | |
20 | + } | |
21 | +} else if (donne("idCarte")) { | |
22 | + // Si l'utilisateur s'authentifie par carte | |
23 | + retour("non_implemente"); // TODO | |
24 | +} else { | |
25 | + retour("requete_malformee"); | |
26 | +} | |
27 | + | |
28 | +retour("ok"); | |
29 | + | |
30 | +?> | ... | ... |