tutorial sessions nodejs node example javascript session node.js express

javascript - sessions - cómo usar sesiones en express, couchDB y node.js



passport session (4)

así que básicamente quiero usar sesiones para almacenar el nombre de los usuarios y verificar si el usuario inició sesión o no. De lo contrario, la página se redirigirá a la página de inicio de sesión.

Estoy usando Node.js, express y couchDB.

Aquí es cómo configuro mi sesión hasta ahora

var MemoryStore = require(''connect'').session.MemoryStore; app.use(express.cookieParser()); app.use(express.session({ secret: "keyboard cat", store: new MemoryStore({ reapInterval: 60000 * 10 }) }));

Para almacenar algo en la sesión, uso el siguiente código ¿verdad?

req.session = {user:name);

Entonces la variable de sesión parece funcionar en mi página de inicio de sesión. Guardo con éxito el nombre del usuario en la sesión Sin embargo, cuando trato de acceder a la variable de sesión en otra página, me da el error

Cannot read property ''user'' of undefined

todo lo que hago es:

if (req.session.user){

¿Por qué está ocurriendo este error? ¿Las sesiones no son globales para toda la aplicación? O me estoy perdiendo algo completamente aquí.

¡Gracias por adelantado!


Estaba tratando de resolver exactamente el mismo problema durante las últimas horas.

Intente inicializar su servidor así:

var app = express.createServer( express.cookieParser(), express.session({ secret: "crazysecretstuff"}) );

Eso debería funcionar.


Si está app.use(app.router) antes de las líneas que configuran la cookie y el manejo de la sesión, intente moverlo después de ellas. Eso me solucionó el mismo problema.


Tuve el mismo problema de quedar indefinido para la variable de sesión, que sabía que estaba bien.

En mi caso, resultó ser causado por una solicitud de origen cruzada, había olvidado el encabezado withCredentials en la solicitud.

Entonces, por ejemplo, en mi aplicación Angular del lado del cliente, necesitaba hacer esto:

var config = { withCredentials: true }; return $http.get(appConfig.apiUrl + ''/orders'', config);

y en Expresar esto:

res.header(''Access-Control-Allow-Credentials'', true);


la sessionSecret en la configuración (config.json?) debe estar no vacía:

sessionSecret: "something other than an empty string",