Les sessions avec node js

Etape 1 mise en place de l’environnement :

  • Créez le dossier tp-sessions-nodejs dans d :
  • Initialisez le dossier pour nodejs
  • Installez le package express
  • Installez le package ejs
  • Installez le package express-session
  • Créez le fichier index.js
  • Créez le dossier views
  • Dans le dossier views créez le fichier index.ejs
  • Dans le dossier views créez le fichier login.ejs
  • Dans le fichier index.js créez un simple serveur express sur le 3333
  • Dans le fichier index.ejs créez une simple page html hello world
  • Dans le fichier login.ejs créez un formulaire html avec les champs login et password
  • Dans le fichier index.js créez la route app.get / vers index.ejs
  • Dans le fichier index.js créez la route app.post /login
  • Exécutez nodemon index.js
  • Ouvrez votre navigateur pour vérifier le fonctionnement

  Etape 2 activation des sessions :

   Dans le fichier index.js ajoutez avant les routes :

app.use(session({

    cookieName: 'session',

    secret: 'MonCodeSecretSession',

    duration: 30 * 60 * 10000,

    activeDuration: 5 * 60 * 10000,

    httpOnly: true,

    secure: true,

    ephemeral: true

}));

Dans le fichier index.js ajoutez la fonction suivante :

function requireLogin(req, res, next) {

    if (!req.session.user) {

        res.render('login', {page: "login"});

    } else {

        next();

    }

};

Dans le fichier index.js modifier la route app.get :

app.get(‘/’, requireLogin, function (req, res) {

    res.render(‘index’, {user: req.session.user});

});

Dans le fichier index.js modifier la route app.post :

app.post('/login', function (req, res) {

                 var login = req.body.login.toString();

     var mdp = req.body.mdp.toString();

     if(login== ‘monlogin’ && mdp=’Passw0rd’){

                   req.session.user={login:login,mdp :mdp};

         res.redirect('/');

         }

     else res.render('login') ;

  });

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *