16 Mar 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