Nie można uzyskać dostępu do zmiennych req.session w Express / NodeJS

Widziałem wiele odmian tego pytania, ale żadne z nich nie rozwiązało mojego problemu. Próbuję skonfigurowaćNode.js serwer używającyExpress. Oto moja konfiguracja serwera:

var express = require('express'),
    RedisStore = require('connect-redis')(express);

var app = express();

app.use(express.urlencoded());
app.use(express.json());
app.use(express.cookieParser());
app.use(express.session({
    store: new RedisStore(), 
    secret: APP_SECRET
}));

// Initialize redis connection
var client = redis.createClient();
client.on('connect', function() {
    console.log('Connected to Redis server')
})
client.on('error', function (err) {
    console.log('Error ' + err);
});

// Enable cross-origin resource sharing
app.all('*', function(req, res, next) {
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Headers', 'X-Requested-With');
  next();
 });

var api = require('./controllers/api.js');

app.post('/login', api.login);
app.get('/auth', api.auth);

app.listen(3000);

Oto kilka prostych tras:

exports.login = function(req, res) {
    var user = new User(req.username, req.password);
    req.session.user = user;
    console.log(req.session.user); //works
    res.json({user:user});
}

exports.auth = function(req, res) {
    console.log(req.session.user); //doesn't work
    res.json(req.session.user);
}

Więc w moimlogin trasa, mogę wydrukować zmienną sesji zgodnie z oczekiwaniami. Ale jeśli odwiedzęauth trasa po zwiedzaniulogin trasa, zmienna sesji jest niezdefiniowana. Jak mogę uzyskać dostęp do sesji Express?

questionAnswers(3)

yourAnswerToTheQuestion