Login en utilisant NodeJS , ExpressJS , EJS et express session

Login en utilisant NodeJS , ExpressJS , EJS et express session

Etape 1 :

Installation du express , express-session , ejs et body-parser

/* installation du express-session */
npm install express-session
/* installation du body-parser */
npm install body-parser

 

Ou simplement , vous devez créer un fichier package.json et exécutez la commande npm install

/* package.json */
{
  "name": "express-session",
  "version": "1.0.0",
  "main": "server.js",
  "dependencies": {
    "body-parser": "^1.7.0",
    "ejs": "^1.0.0",
    "express": "^4.8.7",
    "express-session": "^1.7.6"
  }
}

/* commande à exécuter */
npm install

 

Etape 2 :

La création d’un fichier server.js

var express			=	require('express');
var session			=	require('express-session');
var bodyParser  	= 	require('body-parser');
var app				=	express();

app.set('views', __dirname + '/views');
app.engine('html', require('ejs').renderFile);

app.use(session({secret: 'LdfsfhKirbfg',saveUninitialized: true,resave: true}));
app.use(bodyParser.json());      
app.use(bodyParser.urlencoded({extended: true}));

var sess;

app.get('/',function(req,res){
	sess=req.session;
	if(sess.email)
	{
		res.redirect('/admin');
	}
	else{
	res.render('index.html');
	}
});

app.post('/login',function(req,res){
	sess=req.session;	
	sess.email=req.body.email;
	res.end('done');
});

app.get('/admin',function(req,res){
	sess=req.session;
	if(sess.email)	
	{
		res.write('<h1>Bonjour '+sess.email+'</h1><br>');
		res.end('<a href='+'/logout'+'>Se déconnecter</a>');
	}
	else
	{
		res.write('<h1>Erreur vous devez être connecter.</h1>');
		res.end('<a href='+'/'+'>Se connecter</a>');
	}

});

app.get('/logout',function(req,res){
	
	req.session.destroy(function(err){
		if(err){
			console.log(err);
		}
		else
		{
			res.redirect('/');
		}
	});

});
app.listen(8080);

 

Etape 3 :

La création du notre view

On crée un dossier views et on crée un fichier index.html

/* index.html */
<html>
<head>
<title>Express Session</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<script>
$(document).ready(function(){
	var email,pass;
	$("#submit").click(function(){
		email=$("#email").val();
		pass=$("#password").val();
		$.post("http://localhost:8080/login",{email:email,pass:pass},function(data){		
			if(data==='done')			
			{
				window.location.href="/admin";
			}
		});
	});
});
</script>
</head>
<body>
<input type="email" size="40" placeholder="Email" id="email" />
<br />
<input type="password" size="40" placeholder="Mot de passe" id="password" />
<br />
<input type="button" value="Se connecter" id="submit" />
</body>
</html>

 

Etape 4 :

Pour exécuter le script

node server.js