🚀 Il y a quelques mois, j'avais démarré un projet open source : forge-auth.

À l'époque, faute de temps, je n'avais pas pu aller au bout de toutes les fonctionnalités que j'avais en tête. Le projet est resté en pause, avec une base solide mais incomplète.

Aujourd'hui, c'est différent : forge-auth est stable, testé de bout en bout, et couvre largement ce qu'on attend d'un système d'authentification moderne pour Django.

forge-auth (paquet PyPI django-forge-auth) est une application Django réutilisable qui fournit un système d'authentification complet et configurable, pensé pour être branché sur n'importe quel projet DRF sans réinventer la roue à chaque fois.

Ce qu'elle propose aujourd'hui :

🔐 Authentification & connexion
– Connexion par mot de passe, par OTP, par magic link ou via OIDC (connexion sociale générique)
– Backend d'authentification multi-champs (téléphone, email, username, etc.)
– Second facteur applicatif TOTP (MFA) avec codes de secours
– JWT flexible : header Authorization et/ou cookie httponly, avec rotation optionnelle des refresh tokens

🛡️ Sécurité
– Verrouillage de compte après plusieurs tentatives échouées
– Historique d'audit des connexions (succès/échec, IP, user-agent)
– Gestion des sessions et des appareils, avec révocation
– Clés API pour les scénarios machine-to-machine (M2M)
– Permissions strictes pour éviter les failles IDOR sur les ressources utilisateur
– Throttling configurable sur les endpoints sensibles (login, OTP, refresh, reset de mot de passe)

👤 Gestion de compte
– Utilisateur personnalisé avec photo de profil optionnelle
– Changement de mot de passe et flux complet de mot de passe oublié
– Vérification de contact (email / téléphone)
– Groupes et permissions Django prêts à l'emploi

⚙️ Expérience développeur
– Endpoints DRF prêts à l'emploi, documentés avec drf-spectacular
– Configuration entièrement centralisée et validée au démarrage
– Une commande de gestion interactive (forge_auth_setup) qui pose les bonnes questions et génère la configuration à la place du développeur
– Support i18n
– Une suite de tests exhaustive couvrant les scénarios critiques (sécurité, permissions, rotation de tokens, verrouillage, MFA, etc.)

Ce projet m'a beaucoup appris sur la conception d'une librairie réutilisable : penser la configuration comme un contrat, anticiper les pièges de tests, et surtout ne rien laisser au hasard sur les questions de sécurité (IDOR, gestion des tokens, verrouillage de compte...).

Je suis fier d'avoir contribué, à travers ce projet open source, à l'avancée de l'informatique — même modestement, en mettant à disposition un outil solide que d'autres développeurs Django pourront réutiliser plutôt que de repartir de zéro.

Le dépôt est disponible ici : https://github.com/alzeph/django-forge-auth

N'hésitez pas à y jeter un œil, à le tester, ou à me faire vos retours 🙂

#Django #Python #OpenSource #Backend #Authentification #DRF #Sécurité
