Maison >interface Web >js tutoriel >Authentification du site dans Node.js: inscription et connexion de l'utilisateur

Authentification du site dans Node.js: inscription et connexion de l'utilisateur

William Shakespeare
William Shakespeareoriginal
2025-03-10 00:20:15505parcourir

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.

Site Authentication in Node.js: User Signup and Login

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.

Site Authentication in Node.js: User Signup and Login Site Authentication in Node.js: User Signup and Login Site Authentication in Node.js: User Signup and Login

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')
});

Site Authentication in Node.js: User Signup and Login

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn