Ce projet implémente un système d'authentification complet avec les fonctionnalités de login, logout, gestion des OTP (One-Time Password), enregistrement (register), réinitialisation de mot de passe (reset password) et utilise les technologies Redis, JWT (JSON Web Token), ainsi que MongoDB pour offrir une solution robuste et sécurisée.
-
Login: Les utilisateurs peuvent se connecter en fournissant leurs informations d'identification. Le système utilise JWT pour générer des jetons d'authentification sécurisés.
-
Logout: Les utilisateurs peuvent se déconnecter, invalidant ainsi leur jeton d'authentification.
-
OTP (One-Time Password): Un mécanisme de jeton à usage unique est mis en place pour renforcer la sécurité du processus d'authentification.
-
Register: Les nouveaux utilisateurs peuvent s'inscrire en fournissant les informations nécessaires. Les données sont stockées de manière sécurisée dans une base de données MongoDB.
-
Email verification: Vérification d'adresse mail.
-
Forget Password: Les utilisateurs peuvent demander une réinitialisation de mot de passe en fournissant leur adresse e-mail. Un e-mail contenant un lien sécurisé est envoyé pour permettre la réinitialisation du mot de passe.
-
Reset Password: Les utilisateurs peuvent réinitialiser leur mot de passe en suivant le lien envoyé par e-mail. Le nouveau mot de passe est stocké de manière sécurisée dans la base de données.
-
File upload/retrieve: Les utilisateurs peuvent uploader des fichier ou les recuperer. Cas de la photo de profil.
-
Redis: Le système utilise Redis pour gérer les jetons OTP, maintenir une liste noire des jetons invalides, et stocker les demandes de réinitialisation de mot de passe.
-
JWT (JSON Web Token): Les jetons JWT sont utilisés pour sécuriser les sessions d'authentification.
-
MongoDB: La base de données MongoDB est utilisée pour stocker les informations des utilisateurs de manière persistante.
Assurez-vous de configurer les variables d'environnement appropriées, telles que les clés secrètes JWT, les informations de connexion à la base de données MongoDB, les paramètres de connexion Redis, etc.
-
Clônez ce dépôt sur votre machine locale.
git clone https://github.com/fless-lab/node-auth.git
-
Installez les dépendances.
npm install
-
Configurez les variables d'environnement.
cp .env.example .env
Modifiez le fichier
.envavec vos paramètres spécifiques. -
Démarrez l'application.
npm start
Pour visualiser une démo du projet, veuillez consulter ce lien vers la vidéo de démonstration.
N'hésitez pas à contribuer, signaler des problèmes ou améliorer ce projet. Merci et profitez d'une authentification sécurisée et complète !