/ Las sesiones cliente / Node.js no funcionan cuando no se usan como devolución de llamada directa - javascript, node.js, express

Las sesiones cliente de Node.js no funcionan cuando no se usan como devolución de llamada directa - javascript, node.js, express

Utilizando expreso.ruta Estoy intentando crear un middleware para un enrutador específico en mi aplicación que creará y administrará una sesión. Esto no funciona si una sesión de client-sessions no es llamado directamente por Router().use. UN undefined se produce un error para el nombre de la sesión.

La idea (no funciona)

auth.routes.js

import {Router} from "express";
import session from "client-sessions";
import authMiddleware from "./auth.middleware";
import authService from "./auth.service";

export default () => {
const router = Router();

router.use(authMiddleware.createCookie);

router.use(authMiddleware.authenticate);

return router;
};

auth.middleware.js

class authMiddleware {

static createCookie(req, res, next) {
session({
cookieName: "authenticated",
secret: "random_string_goes_here",
duration: 30 * 60 * 1000,
activeDuration: 5 * 60 * 1000
});
next();
}

static authenticate(req, res, next) {
if (req.authenticated) {
// Check and redirect
} else {
req.authenticated.login = false;
}
next();
}
}

export default authMiddleware;

Versión de trabajo

Cambiando el createCookie Llamado a una creación directa de los resultados de la cookie en los anteriores trabajando así:

auth.routes.js

`
router.use(
session({
cookieName: "authenticated",
secret: "random_string_goes_here",
duration: 30 * 60 * 1000,
activeDuration: 5 * 60 * 1000
})
);
`

Soy razonablemente nuevo en Node.js, ¿alguna idea de cómo podría funcionar la idea o simplemente me estoy perdiendo algo?

Respuestas

0 para la respuesta № 1

Se produce un error indefinido para el nombre de la sesión.

Quiero decir, tengo que preguntar, pero usted ha importado el client-sessions biblioteca en auth.middleware.js ¿Correcto?