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 № 1Se 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?