Ce didacticiel démontre la création d'un système d'enregistrement et de connexion des utilisateurs dans une application Web Node.js. Nous couvrirons la validation des entrées et le hachage du mot de passe pour une sécurité améliorée.
Configuration de l'application
Commencez par créer un répertoire de projet (par exemple, "Site-Auth"). Initialiser NPM dans ce répertoire:
npm init -y
La validation du mot de passe utilise une expression régulière /^[a-zA-Z0-9]{6,30}$/
, appliquant 6 à 30 caractères composés de caractères alphanumériques.
Les données du formulaire d'enregistrement sont accessibles via result
. Les erreurs de validation entraînent un message d'erreur et une redirection vers la page d'enregistrement. Les adresses e-mail en double sont également empêchées. Surtout, les mots de passe sont hachés à l'aide de BCrypt avant le stockage de la base de données:
result.value.password = hash
L'enregistrement réussi affiche un message de réussite et redirige vers la page de connexion. Démarrez le serveur avec:
node app.js
Accédez à la page d'inscription à https://localhost:5000
.
Implémentation de connexion
La fonctionnalité de connexion est ajoutée à /routes/users.js
. Un schéma de validation de connexion est défini à l'aide de JOI:
const loginSchema = Joi.object().keys({ email: Joi.string().email().required(), password: Joi.string().regex(/^[a-zA-Z0-9]{6,30}$/).required() });
L'itinéraire de connexion gère les deux demandes (de rendu de la page de connexion) et de publication (Traitement des tentatives de connexion):
router.route('/login') .get((req, res) => { res.render('login') }) .post(async (req, res, next) => { // ... (login validation and password comparison logic) ... });
Redirection de connexion réussie vers un tableau de bord.
Implémentation du tableau de bord
Une simple route de tableau de bord est ajoutée à /routes/index.js
:
router.get('/users/dashboard', (req, res) => { res.render('dashboard') });
Conclusion
Ce tutoriel fournit une base pour l'authentification sécurisée des utilisateurs dans les applications Node.js. N'oubliez pas de toujours valider l'entrée de l'utilisateur et les mots de passe en toute sécurité. Le code source complet est disponible sur GitHub. Ce tutoriel a été mis à jour avec les contributions de Mary Okosun, un développeur de logiciels basé à Lagos, au Nigéria.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!