0
votes

This code

router.post("/", (req, res) =>
{
    console.log(req.session)
    console.log(req.session.id)
})

prints

Session { cookie: { path: '/', _expires: null, originalMaxAge: null, httpOnly: true }, passport: { user: 'red' } }

and then

2sJgQxjBCbKgPiUN3pUdcDty_35GELeE

Is session.id stored inside session? Why it is not displayed after the first call to console.log?

Here is the setup:

app.use(bodyParser.urlencoded({ extended:true }))
var RedisStore = connectRedis(session)
app.use(session(
    {
        store: new RedisStore({ url: config.redisStore.url }),
        secret: config.redisStore.url,
        resave: false,
        saveUninitialized: false
    }))
1
Reasons for downvote?user2136963
Please precise that you're using Express and express-session.Jérémie L
Added the express taguser2136963

1 Answers

1
votes

In Node.js, console.log only displays own enumerable properties of an object by using Object.keys().

The id property of a Session instance is not enumerable since it's defined as (enumerable: false by default):

Object.defineProperty(this, 'id', { value: req.sessionID });

Source