feat: Implémentation authentification NIST SP 800-63B v3.0.8

- Ajout du service PasswordSecurityService conforme NIST SP 800-63B
- Vérification des mots de passe contre la base Have I Been Pwned
- Validation : minimum 8 caractères, maximum 64 caractères
- Pas d'exigences de composition obligatoires (conforme NIST)
- Intégration dans LoginController et UserController
- Génération de mots de passe sécurisés non compromis

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-08-15 15:31:23 +02:00
parent 206c76c7db
commit 5e255ebf5e
49 changed files with 152716 additions and 149802 deletions

295
app/tests-android.md Normal file
View File

@@ -0,0 +1,295 @@
# 📱 Guide de Test Mobile - Geosector App
## 🚀 Configuration Rapide
### 1⃣ Préparation du Mobile Android
#### Activer le Mode Développeur
```
Paramètres → À propos du téléphone → Tapoter 7 fois sur "Numéro de build"
```
#### Activer les Options de Développement
```
Paramètres → Options pour les développeurs → Activer :
✅ Options pour les développeurs
✅ Débogage USB
✅ Débogage sans fil (pour WiFi)
```
---
## 🔌 Test via USB
### Connexion USB
1. Brancher le téléphone en USB-C
2. Accepter l'autorisation de débogage sur le téléphone
### Commandes Terminal
```bash
# Vérifier la connexion
adb devices
flutter devices
# Lancer l'app (mode debug avec hot reload)
flutter run
# Lancer l'app sur un appareil spécifique
flutter run -d [DEVICE_ID]
```
---
## 📶 Test via WiFi (Sans Fil)
### Configuration sur le Mobile
1. **Activer le Débogage sans fil** dans Options pour les développeurs
2. **Entrer dans "Débogage sans fil"** et noter :
- Nom de l'appareil (ex: Pi25)
- Adresse IP et port (ex: 192.168.1.103:33503)
### Première Connexion (avec code d'association)
```bash
# Si première connexion, associer avec code
# Sur mobile : "Associer l'appareil avec un code d'association"
adb pair [IP:PORT_ASSOCIATION] [CODE_6_CHIFFRES]
# Exemple : adb pair 192.168.1.103:37953 123456
```
### Connexion Standard
```bash
# Connecter via WiFi
adb connect [IP:PORT]
# Exemple : adb connect 192.168.1.103:33503
# Vérifier la connexion
adb devices
flutter devices
# Lancer l'app
flutter run -d [IP:PORT]
# Exemple : flutter run -d 192.168.1.103:33503
```
---
## 🎯 Modes de Compilation
### Mode Debug (Développement)
```bash
# Avec hot reload, logs complets, banner DEBUG
flutter run
flutter run -d [DEVICE_ID]
```
**Raccourcis pendant l'exécution :**
- `r` : Hot reload (rechargement rapide)
- `R` : Hot restart (redémarrage complet)
- `p` : Afficher le widget tree
- `o` : Basculer Android/iOS preview
- `q` : Quitter
### Mode Release (Performance)
```bash
# Optimisé, rapide, sans debug
flutter run --release
flutter run -d [DEVICE_ID] --release
```
### Mode Profile (Analyse)
```bash
# Pour profiler les performances
flutter run --profile
flutter run -d [DEVICE_ID] --profile
```
---
## 📦 Build et Installation
### Créer l'APK
```bash
# APK standard
flutter build apk
# APK optimisé pour release
flutter build apk --release
# APK avec obfuscation
flutter build apk --release --obfuscate --split-debug-info=debug_info
# APK split par architecture (plus petit)
flutter build apk --split-per-abi
```
### Installer l'APK
```bash
# Installer sur appareil connecté
flutter install
flutter install -d [DEVICE_ID]
# Installer un APK spécifique
adb install build/app/outputs/flutter-apk/app-release.apk
```
### Bundle pour Play Store
```bash
flutter build appbundle --release
```
---
## 🔧 Commandes Utiles
### Gestion des Appareils
```bash
# Lister tous les appareils
flutter devices
# Infos détaillées ADB
adb devices -l
# Déconnecter un appareil WiFi
adb disconnect [IP:PORT]
# Redémarrer ADB
adb kill-server
adb start-server
```
### Nettoyage et Réparation
```bash
# Nettoyer le projet
flutter clean
# Réinstaller les dépendances
flutter pub get
# Régénérer les fichiers
flutter pub run build_runner build --delete-conflicting-outputs
# Vérifier l'installation Flutter
flutter doctor
```
### Logs et Débogage
```bash
# Voir les logs du téléphone
adb logcat
# Logs Flutter uniquement
flutter logs
# Capturer une capture d'écran
adb shell screencap -p /sdcard/screenshot.png
adb pull /sdcard/screenshot.png
```
---
## 📱 Tests sur le Mobile
### Vérifications Visuelles
- [ ] **AppBar** : Logo Geosector + Logo Amicale (si disponible)
- [ ] **Navigation** :
- Admin : Bordure rouge, menu sélectionné en rouge/gras
- User : Bordure verte, menu sélectionné en vert/gras
- [ ] **Menu Mobile** : Icônes uniquement en bas (sans texte)
- [ ] **Responsive** : Adaptation portrait/paysage
### Tests Fonctionnels
- [ ] Connexion/Déconnexion
- [ ] Navigation entre les pages
- [ ] Formulaires et validations
- [ ] Synchronisation des données
- [ ] Mode hors-ligne
### Performance
- [ ] Temps de chargement
- [ ] Fluidité du scroll
- [ ] Réactivité des boutons
- [ ] Consommation mémoire
---
## 🆘 Résolution de Problèmes
### Appareil Non Détecté
```bash
# Vérifier les drivers USB
adb devices
# Relancer ADB
adb kill-server
adb start-server
# Vérifier Flutter
flutter doctor -v
```
### Erreur de Connexion WiFi
```bash
# Vérifier le réseau (même WiFi PC et mobile)
ping [IP_MOBILE]
# Réassocier l'appareil
adb pair [IP:PORT] [CODE]
# Forcer la reconnexion
adb disconnect
adb connect [IP:PORT]
```
### Build Échoué
```bash
# Nettoyer et reconstruire
flutter clean
flutter pub get
flutter run
```
---
## 💡 Tips & Astuces
1. **Gardez le téléphone déverrouillé** pendant les tests
2. **Désactivez l'économie d'énergie** pour éviter les déconnexions
3. **Utilisez le mode Release** pour tester les vraies performances
4. **Activez "Rester éveillé"** dans Options développeur
5. **WiFi stable** : Préférez le 5GHz au 2.4GHz si disponible
---
## 📊 Exemple de Session Type
```bash
# 1. Connexion WiFi
adb connect 192.168.1.103:33503
# 2. Vérification
flutter devices
# 3. Lancement en debug
flutter run -d 192.168.1.103:33503
# 4. Tests et hot reload (touche r)
# 5. Test performance
flutter run -d 192.168.1.103:33503 --release
# 6. Build final
flutter build apk --release
```
---
## 📝 Notes Spécifiques Geosector
- **Environnement** : L'app détecte automatiquement DEV/REC/PROD
- **Logos** : Le logo amicale s'affiche si disponible en base64
- **Rôles** : Admin (rouge) vs User (vert) dans l'interface
- **Cache** : Utilise Hive pour le stockage local
---
*Guide créé pour Geosector v3.0.6 - Flutter 3.32+*