据我所知,我已根据快递会话的documentation设置了会话。但是我的cookie没有被创建!根据文档,您所要做的就是设置request.session值,并且应该自动设置cookie。我不确定伏都教能做到什么,但魔法似乎已被打破。只是为了确保我对here给出的示例进行了验证。我错了吗?这些缺少一些关键信息吗?
//login route handler
app.post('/users/login/', function (req, res) {
//... get the row from DB, check the pass then set session
this.bcrypt.compare(password, row.hashed, function(err, passwordsMatch) {
if( passwordsMatch === true)
{
//set the session variable 'user'
req.session.user = row;
res.send(row);
}
});
所以我想知道我做错了什么,或者是否有最新的错误?我可以检查我的数据库,我确实在会话表中的行上看到了正确的会话变量!
//Here's my "configuration" of express-session.
app.use(function (req, res, next) {
res.header('Access-Control-Allow-Credentials', 'true');
next();
});
var storeOptions = {
//my database options (this works, it makes rows in db table)
};
var sessionStore = new SessionStore( storeOptions );
app.use(session({
name:'yay_session',
secret: 'some secret this is now',
resave: true,
saveUninitialized: false,
cookie: { maxAge: 600000,httpOnly: false, domain:'localhost' },
store: sessionStore
}));
为什么我的客户端cookie没有设置?它没有显示在资源调试面板中。因此,我想知道最新的4.13.3版本是否存在与快速会话1.11.3配合使用的错误。这是截至8月27日的最新信息。
答案 0 :(得分:0)
使用以下代码进行会话以在EXPRESS JS V 4中正常工作: -
var express = require('express');
var session = require("express-session");
var cookieParser = require('cookie-parser');
var app = express();
app.use(cookieParser());
var MemoryStore =session.MemoryStore;
app.use(session({
name : 'app.sid',
secret: "1234567890QWERTY",
resave: true,
store: new MemoryStore(),
saveUninitialized: true
}));
答案 1 :(得分:0)