2016-04-19 10 views
1

In Node.js/Mongodb möchte ich eine einfache Sitzung erstellen und es auf einer anderen Seite geben, damit ich wissen kann, ob ein Benutzer angemeldet ist oder nicht. Ich möchte wissen, ob er auf die Seite zugreifen kann oder nicht, wie soll ich das machen? Wie lege ich eine Sitzung fest und wie bekomme ich den Wert um zu überprüfen, ob ich den Benutzer umleiten muss.So erstellen Sie Sitzungen in node.js

Vielen Dank!

Antwort

1

Verwenden Sie Express session.

Es lohnt sich auch, einen Blick auf passport zu werfen, was die Implementierung der Authentifizierung in node.js wirklich einfach macht.

Express-Sitzung Beispiel:

var express = require('express'); 
var session = require('express-session'); 
var app = express(); 

// Make sure this is defined before any of your routes 
// that make use of the session. 
app.use(session({ 
    secret: 'keyboard cat', 
    cookie: { maxAge: 60000 }, 
    resave: false, 
    saveUninitialized: false 
})); 

// Access the session as req.session 
app.get('/login', function(req, res) { 
    req.session.user = 1; 
    res.end('User 1 is logged in, please go to the /discussion page.'); 
}); 

app.get('/discussion', function(req, res) { 
    var sess = req.session; 
    if (typeof sess.user === 'undefined') { 
    res.redirect('/login'); 
    } else { 
    res.setHeader('Content-Type', 'text/html'); 
    res.write('<p>user: ' + sess.user + '</p>'); 
    res.write('<p>expires in: ' + (sess.cookie.maxAge/1000) + 's</p>'); 
    res.end(); 
    } 
}); 
+0

Ich verstehe nicht, wie Sie die Benutzer-ID in einer Sitzung setzen und darauf zugreifen auf einer anderen Seite. Wenn ich diesen Code verwende, sagt er mir immer, dass sess.user nicht definiert ist. –

+0

Ihr Recht Ich werde das Beispiel aktualisieren. –

+0

Ok, die Einstellung funktioniert, aber auf einer anderen Seite tue ich das, um zu prüfen, ob es eingestellt ist, aber das wird nicht funktionieren. router.get ('/', Funktion (req, res)) { app.use (Sitzung ({geheim: 'Tastaturkatze', Cookie: {maxAge: 60000}})); var sess = Sitzung; if (sess.user) { console.log ("yesssss"); } else { console.log ("Es funktioniert nicht"); } }); –