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();
}
});
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. –
Ihr Recht Ich werde das Beispiel aktualisieren. –
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"); } }); –