0
我正在開發node和express。我正試圖記住我登錄。我在網上閱讀了很多東西,但無法使其工作。我不知道是否有接收器,如果有,我找不到它。node + express + redis持久會話/記得我
我正在嘗試使用redis和快速會話。並正在部分工作。 如果重新啓動節點服務器,或者關閉並重新打開chrome。會話正在進行中。因此進入「/」會將我重定向到「/index.html」。
但是,如果我重新啓動電腦,我失去了會議。所以goning成「/」將重定向我從我的服務器到「登錄」 這裏是一些顯著代碼:
var redisClient = require('redis').createClient();
var RedisStore = require('connect-redis')(express);
app.use(bodyParser());
app.use(cookieParser());
app.use(express.session({
store: new RedisStore({
host: 'localhost',
port: 6379,
db: 0,
cookie: { maxAge: (24*3600*1000*30)}, // 30 Days in ms
client : redisClient
}),
secret: 'seeeecret'
}));
app.get('/', function(req, res, next) {
res.redirect('/index.html');
});
app.post('/login', function(req, res) {
function loginSuccess() {
req.session.regenerate(function() {
req.session.user = req.body.usuario;
res.sendfile('index.html', {root: './static'});
});
}
function loginFailure(errText, errCode) {
console.log("failed to login. "+errCode+": "+errText);
res.redirect('/login');
}
//Imap email login (the user will authenticate with his email, end email's pass)
checkPassword(req.body.usuario, req.body.server, req.body.password, loginSuccess, loginFailure);
});
function restrict(req, res, next) {
if (req.session.user) {
next();
} else {
req.session.error = 'Access denied!';
res.redirect('/login');
}
}
是你確定你的redis服務器設置爲將數據保存到磁盤? – mscdex
mmm差不多..我安裝followin oficial doc。據我所知,它堅持數據。因爲這是(或不) – GonzaloA