Authentification et sécurité
Se connecter pour s'inscrireVotre progression
Syllabus
-
-
Objectifs
-
Validations de compétences
-
Public cible
Aucun public cible spécifié pour ce module.
-
Besoins techniques
-
Prérequis
- Aucun prérequis
-
Niveau
-
Historique du module
Aucune action enregistrée
Système d’Authentification
Un système d'authentification robuste est essentiel pour sécuriser l'accès au chat et protéger les données des utilisateurs. Nous allons mettre en œuvre un système d'authentification en utilisant un service d'authentification tel que Passport.js et en stockant et vérifiant les informations d'identification des utilisateurs dans une base de données MongoDB à l'aide de Mongoose.
-
Installation de Passport.js
Tout d'abord, nous devons installer Passport.js dans notre projet. Passport.js est un middleware d'authentification pour Node.js qui prend en charge différents schémas d'authentification, y compris les stratégies locales, OAuth, etc. Exécutez la commande suivante dans le répertoire de votre projet pour installer Passport.js :
npm install passport passport-local passport-local-mongoose -
Configuration de Passport.js
: Ensuite, nous allons configurer Passport.js dans notre application. Cela implique de définir une stratégie d'authentification locale, qui utilise les identifiants (nom d'utilisateur et mot de passe) stockés dans notre base de données MongoDB.
const passport = require('passport'); const LocalStrategy = require('passport-local').Strategy; const User = require('./models/user'); // Modèle utilisateur avec Mongoose passport.use(new LocalStrategy(User.authenticate())); // Utilisation de la méthode d'authentification de Mongoose passport.serializeUser(User.serializeUser()); passport.deserializeUser(User.deserializeUser()); Création de Routes d'Authentification : Nous devons créer des routes pour gérer l'authentification des utilisateurs, y compris les routes pour l'inscription, la connexion, la déconnexion, etc. javascript Copy code // Route pour l'inscription d'un nouvel utilisateur app.post('/register', (req, res) => { User.register(new User({ username: req.body.username }), req.body.password, (err, user) => { if (err) { console.error('Erreur lors de l\'inscription :', err); return res.redirect('/register'); } passport.authenticate('local')(req, res, () => { res.redirect('/chat'); }); }); }); // Route pour la connexion d'un utilisateur existant app.post('/login', passport.authenticate('local', { successRedirect: '/chat', failureRedirect: '/login', failureFlash: true })); // Route pour la déconnexion d'un utilisateur app.get('/logout', (req, res) => { req.logout(); res.redirect('/'); }); -
Stockage des Informations d'Identification dans MongoDB
Nous utilisons Mongoose pour définir un schéma utilisateur et stocker les informations d'identification des utilisateurs dans une collection MongoDB.
const mongoose = require('mongoose'); const passportLocalMongoose = require('passport-local-mongoose'); const userSchema = new mongoose.Schema({ username: String, password: String }); userSchema.plugin(passportLocalMongoose); // Ajout des méthodes d'authentification à notre schéma utilisateur module.exports = mongoose.model('User', userSchema);
En intégrant ces étapes, nous mettons en place un système d'authentification robuste dans notre projet de chat, garantissant que seuls les utilisateurs authentifiés ont accès aux fonctionnalités du chat.
Exercices, examens et projets
Atelier backend
Implémenter une API ou un service backend en conditions réelles.
Obligatoire ConsulterExamen backend
Vérifier les notions Node.js, API, sécurité et temps réel.
Obligatoire ConsulterProjet full stack
Déployer une application complète avec tests et documentation.
Livrables :
- API
- Interface
- Tests
- Déploiement