# 2FA Google Authentificator pour PrestaShop — Documentation

> Ce guide couvre l'installation, la configuration et l'utilisation quotidienne du module 2FA Google Authentificator pour PrestaShop 8 et 9. Le module ajoute une vérification par code à 6 chiffres (standard…

- Page: <https://www.datafirefly.com/documentation/2fa-google-authentificator-pour-prestashop/>
- Langue: fr
- Mis à jour le: 2026-09-08
- Autres langues: [en](https://www.datafirefly.com/en/documentation/2fa-google-authentificator-pour-prestashop/index.md), [es](https://www.datafirefly.com/es/documentation/2fa-google-authentificator-pour-prestashop/index.md), [de](https://www.datafirefly.com/de/documentation/2fa-google-authentificator-pour-prestashop/index.md), [it](https://www.datafirefly.com/it/documentation/2fa-google-authentificator-pour-prestashop/index.md), [pl](https://www.datafirefly.com/pl/documentation/2fa-google-authentificator-pour-prestashop/index.md), [nl](https://www.datafirefly.com/nl/documentation/2fa-google-authentificator-pour-prestashop/index.md), [pt](https://www.datafirefly.com/pt/documentation/2fa-google-authentificator-pour-prestashop/index.md)
- Index: <https://www.datafirefly.com/documentation/llms.txt>

Ce guide couvre l'installation, la configuration et l'utilisation quotidienne du module **2FA Google Authentificator** pour PrestaShop 8 et 9. Le module ajoute une vérification par code à 6 chiffres (standard TOTP, RFC 6238) après la saisie du mot de passe sur le back-office.

## Prérequis

- PrestaShop 8.0 à 8.2 ou PrestaShop 9.x
- PHP 7.4 minimum (PHP 8.1+ requis par PrestaShop 9)
- Une application TOTP sur le téléphone de chaque employé : Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden, FreeOTP ou toute app compatible RFC 6238
- Horloge serveur synchronisée via NTP (le cas sur tous les hébergements modernes)

## Installation

1. Dans le back-office, ouvrez **Modules → Gestionnaire de modules**.
2. Cliquez sur **Installer un module** et sélectionnez le fichier `df2fa.zip` téléchargé depuis votre compte DataFirefly.
3. Cliquez sur **Installer**. Le module crée sa table en base et enregistre ses contrôleurs automatiquement.

L'installation n'active la 2FA pour personne : chaque employé doit effectuer son appairage (ou y être forcé via le mode obligatoire, voir ci-dessous). Vous ne risquez pas de vous retrouver bloqué hors du back-office en installant le module.

## Configuration du module

Ouvrez **Modules → Gestionnaire de modules → 2FA Google Authentificator → Configurer**. La page présente trois blocs :

### Mon compte 2FA

Un panneau d'état en haut de page indique si votre propre 2FA est active, avec un bouton direct vers l'appairage ou la gestion.

### Configuration 2FA

- **2FA obligatoire** — en mode forcé, tout employé sans 2FA configurée est automatiquement redirigé vers la page d'appairage dès sa connexion. En mode opt-in (par défaut), une bannière de rappel s'affiche dans le back-office et chaque employé active sa 2FA quand il le souhaite.
- **Nom de l'émetteur (Issuer)** — le nom affiché dans l'application TOTP de vos employés (par défaut, le nom de la boutique).

### Statut 2FA des employés

Un tableau liste tous les employés avec leur statut 2FA (actif/inactif), la date de configuration et un bouton **Réinitialiser** pour chaque employé ayant la 2FA active.

Déploiement progressif recommandé : commencez en mode opt-in, laissez la bannière de rappel faire son travail quelques jours, vérifiez l'adoption dans le tableau, puis basculez en mode obligatoire.

## Appairage côté employé

1. L'employé ouvre la page d'appairage : via le lien **Configurer ma 2FA** du menu utilisateur (en haut à droite du back-office), via la bannière de rappel, ou automatiquement à la connexion si le mode obligatoire est actif.
2. Il scanne le **QR code** affiché avec son application TOTP. Le QR code est généré localement dans le navigateur — aucune donnée n'est envoyée à un service externe. En cas d'impossibilité de scanner, le secret peut être saisi manuellement dans l'app (bouton Copier).
3. Il saisit le **code à 6 chiffres** affiché par l'application pour valider l'appairage.
4. Les **8 codes de récupération** à usage unique s'affichent alors — c'est la seule fois où ils sont visibles. L'employé les copie ou les imprime et les conserve en lieu sûr.

Les codes de récupération sont stockés hashés (SHA-256) : ils ne peuvent pas être réaffichés ultérieurement. S'ils sont perdus, il faudra désactiver puis réactiver la 2FA, ou passer par une réinitialisation Super Admin.

## Connexion avec 2FA

Après la saisie du mot de passe, l'employé est redirigé vers l'écran de vérification 2FA et saisit le code à 6 chiffres courant de son application. La vérification reste valable **12 heures** pour la session : il n'est pas nécessaire de ressaisir un code à chaque page.

Une tolérance de dérive de ±30 secondes est appliquée pour absorber les petits écarts d'horloge entre le serveur et le téléphone.

## Codes de récupération

Si l'employé n'a plus accès à son application TOTP (téléphone perdu, volé, réinitialisé) :

1. Sur l'écran de vérification, cliquez sur **Utiliser un code de récupération**.
2. Saisissez l'un des 8 codes de récupération (10 caractères).
3. Chaque code ne fonctionne **qu'une seule fois**. Une fois connecté, désactivez puis réactivez la 2FA pour générer un nouvel appairage et une nouvelle série de codes.

## Protection anti force brute

Après **5 codes invalides consécutifs**, la vérification 2FA du compte est verrouillée pendant **15 minutes**. L'écran de vérification affiche le temps restant. Le compteur est remis à zéro à chaque vérification réussie.

## Réinitialisation par un Super Admin

Si un employé a perdu à la fois son téléphone et ses codes de récupération :

1. Un Super Admin ouvre la page de configuration du module.
2. Dans le tableau **Statut 2FA des employés**, il clique sur **Réinitialiser** sur la ligne de l'employé concerné.
3. La 2FA de l'employé est supprimée : il peut se connecter avec son seul mot de passe et devra refaire l'appairage (immédiatement si le mode obligatoire est actif).

## Désactiver sa propre 2FA

Depuis **Gérer ma 2FA** (menu utilisateur ou panneau du module), cliquez sur **Désactiver la 2FA** et confirmez avec un code TOTP valide. La saisie d'un code est exigée pour empêcher une désactivation par une session laissée ouverte.

## Mise à jour depuis la version 1.0.x

La mise à jour vers la 1.1.0 est automatique et transparente :

- La structure de la table est migrée (colonnes de verrouillage, champ secret élargi).
- Les secrets TOTP existants restent valides et sont **chiffrés en AES-256** automatiquement lors de leur prochaine sauvegarde. Aucun ré-appairage nécessaire.
- Les codes de récupération existants restent utilisables : ils sont convertis en hash SHA-256 à leur première utilisation.

Migration PS8 → PS9 : le module est identique sur les deux versions. Vous pouvez migrer votre boutique sans mettre à jour le module ni ré-appairer les employés.

## Dépannage

### « Code invalide » alors que le code semble correct

Dans 95 % des cas il s'agit d'un écart d'horloge. Vérifiez que l'horloge du serveur est synchronisée par NTP (`timedatectl` sous Linux) et que l'heure du téléphone est en mode automatique. La tolérance du module est de ±30 secondes.

### Compte verrouillé après des essais infructueux

Attendez la fin du verrouillage de 15 minutes, ou demandez à un Super Admin de réinitialiser la 2FA du compte depuis la page de configuration.

### Tous les accès Super Admin sont bloqués

En dernier recours, désactivez le module en base de données : dans la table `ps_module`, passez la colonne `active` à 0 pour la ligne `df2fa`, ou renommez temporairement le dossier `modules/df2fa`. Reconnectez-vous, puis réactivez le module et refaites les appairages nécessaires.

### La bannière de rappel ne s'affiche pas

La bannière n'apparaît que pour les employés sans 2FA active. En mode opt-in, elle peut être masquée pour la session en cours via sa croix de fermeture ; elle réapparaît à la session suivante.

## Notes de version

### 1.1.1 (8 septembre 2026)

- Correction du tableau Statut 2FA des employés : la page de configuration renvoyait une erreur sur la colonne Email
- Langue source du module passée en anglais
- Interface traduite en français, italien, allemand, espagnol, portugais, polonais et néerlandais
- Libellés du bouton de copie du secret rendus traduisibles

### 1.1.0 — 2 juillet 2026

- Compatibilité PrestaShop 9 (contrôleurs, nouvelle page de connexion Symfony, Symfony 6.4)
- Chiffrement AES-256 du secret TOTP en base, avec migration automatique
- Codes de récupération hashés en SHA-256 (10 caractères)
- Verrouillage 15 minutes après 5 codes invalides
- QR code généré 100 % localement (dépendance CDN supprimée)

### 1.0.0 — 12 mars 2025

- Première version stable : TOTP RFC 6238, mode obligatoire ou opt-in, 8 codes de récupération, réinitialisation Super Admin, multi-boutique
