| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- <?php
- /**
- * Validation du code TOTP pour activer la double authentification
- */
- if (core::ifPost("from") and core::getPost("from") == "validate-2fa") {
- $userId = (int) core::getPost("id");
- $totpCode = core::getPost("totp_code");
- // Vérifier que l'utilisateur valide son propre 2FA
- if ($userId !== session::getId()) {
- alert::recError("Vous ne pouvez valider que votre propre double authentification.");
- header("Location: /user.html");
- exit();
- }
- // Vérifier que le 2FA est bien en attente de validation
- if (!user::is2FAPending($userId)) {
- alert::recError("La double authentification n'est pas en attente de validation.");
- header("Location: /user.html");
- exit();
- }
- // Valider le code TOTP
- $result = user::validate2FAActivation($userId, $totpCode);
- if ($result["status"] === "success") {
- // Mettre à jour la session
- $_SESSION["user"]["googleAuthenticator"] = 1;
- historique::recRef("/user.html");
- historique::add(array(
- "idType" => historique::getIdRef("ACTION"),
- "idUser" => session::getId(),
- "idPage" => historique::getIdRef("/user.html"),
- "log" => "Activation de la double authentification (Google Authenticator)"
- ));
- alert::recSuccess($result["message"]);
- } else {
- alert::recError($result["message"]);
- }
- header("Location: /user.html");
- exit();
- } else {
- header('HTTP/1.0 401 Unauthorized');
- exit();
- }
|