Authentification et sécurité

Se connecter pour s'inscrire

Votre progression

Continuez pour débloquer la suite !
0 / 0 étapes complétées 0
%

Syllabus

  1. Description

  2. Objectifs

  3. Validations de compétences

  4. Public cible

    Aucun public cible spécifié pour ce module.

  5. Besoins techniques

  6. Prérequis

    • Aucun prérequis
  7. Niveau

  8. 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.

  1. 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
                            
                        
  2. 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('/');
                                });
                                
                            
  3. 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

Exercice

Atelier backend

Implémenter une API ou un service backend en conditions réelles.

Obligatoire Consulter
Examen

Examen backend

Vérifier les notions Node.js, API, sécurité et temps réel.

Obligatoire Consulter
Projet

Projet full stack

Déployer une application complète avec tests et documentation.

Livrables :

  • API
  • Interface
  • Tests
  • Déploiement
Obligatoire Consulter