2016-04-19 5 views
1

В Node.js/Mongodb Я хочу создать простой сеанс и передать его на другую страницу, чтобы я мог знать, вошел ли пользователь в систему или нет. Я хочу знать, может ли он получить доступ к странице или нет, как мне это сделать? Как установить сеанс и как получить значение, чтобы проверить, нужно ли мне перенаправлять пользователя.Как создать сеансы в node.js

Большое спасибо!

ответ

1

Использование Express session.

Также стоит взглянуть на passport, что делает реализацию аутентификации в node.js очень простой.

Экспресс пример сеанса:

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

Я не понимаю, как вы положили идентификатор_пользователь в сессии и доступ к нему на другой странице. Если я использую этот код, он всегда говорит мне, что sess.user не определен. –

+0

Ваше право Я обновлю пример. –

+0

Хорошо, настройка работает, но на другой странице я делаю это, чтобы проверить, установлено ли это, но это не сработает. router.get ('/', function (req, res) { app.use ({secret: 'keyboard cat', cookie: {maxAge: 60000}})) var sess = session; if (sess.user) { console.log ("yesssss"); } else { console.log ("IT не работает"); } }); –

Смежные вопросы