快递是否与快递4.13不一致?

时间:2015-08-28 06:27:39

标签: javascript node.js express login express-session

据我所知,我已根据快递会话的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日的最新信息。

2 个答案:

答案 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)

必须保存会话。

from(endpoint)
   .bean(productService, "getAllProducts")

有关express-session page的详细信息。