Bonjour,

J'ai fait une page d’authentification avec NodeJS est MongoDB en HTTPS.

Cela fonctionne et voici comment je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
var https=require('https');
var express=require('express');
var app=express();
var fs=require('fs');
var options={key:fs.readFileSync('key.pem'),cert:fs.readFileSync('cert.pem')};
var mongoose=require('mongoose');
var serveur=https.createServer(options,app).listen(443);
app.set('views','view');
app.set('view engine','ejs');
app.get('/',function(req,res)
    {
    res.render('page_accueil');
    });
var db=mongoose.connect('mongodb://localhost/course_mortelle');
var schema_identifiant=mongoose.Schema({identifiant:String,mdp:String});
var Model_identifiant=mongoose.model('Model_identifiant',schema_identifiant);
var io=require('socket.io').listen(serveur);
io.sockets.on('connection',function(socket)
    {
    socket.on('message_client_se_connecter',function(objet_se_connecter)
        {
        var identifiant=objet_se_connecter.cle_identifiant;
        var mdp=objet_se_connecter.cle_mdp;
        Model_identifiant.find({identifiant:identifiant,mdp:mdp},function(err,model_identifiants)
            {
            var objet_identifiant_bdd=model_identifiants[0];
            if(objet_identifiant_bdd==undefined)
                {
                Model_identifiant.find({identifiant:identifiant},function(err,model_identifiants)
                    {
                    var objet_identifiant_bdd_bis=model_identifiants[0];
                    if(objet_identifiant_bdd_bis==undefined)
                        {
                        var message_se_connecter="L'identifiant saisi et incorecte";
                        socket.emit('message_serveur_se_connecter',message_se_connecter);
                        }
                    else
                        {
                        var message_se_connecter="Le mot de passe saisi et incorecte";
                        socket.emit('message_serveur_se_connecter',message_se_connecter);
                        }
                    });
                }
            else
                {
                var ap=app.get('/bonjour',function(req,res)
                    {
                    res.render('contre_la_montre',{cle_identifiant:identifiant})
                    });
                var message_se_connecter="ok";
                socket.emit('message_serveur_se_connecter',message_se_connecter);
                }
            });
        });
    });
Mais je rencontre toutefois un problème :

Comme NodeJS fonctionne par gestion des URI, quand on tape directement l'URI de la page sur laquelle on est redirigé après authentification on est identifié avec le dernier qui s'est connecté.

Cela cause un gros problème de sécurité.

Je sais qu'il faut gérer ça avec des cookies de sessions.

Mais je n'ai pas compris comment cela fonctionne, ni quelle module utiliser ("cookie-paser", "session", "cookie-session").

Bref tout ça c'est très compliqué pour moi. Surtout que je ne maîtrise pas l’anglais.

Pouvez-vous m’aider à mettre ça en place ?

Merci à tout ce qui me seront d'une aide précieuse.