Estoy usando express-session y connect pg simple para mi sesión y administración de tiendas de esta manera:
app.use( session({ secret: process.env.SECRET, resave: false, saveUninitialized: false, cookie: { maxAge: 604800, secure: isProduction ? true : false, sameSite: "lax", }, store: new pgSession({ pool: db, createTableIfMissing: true, }), }) );También estoy implementando pasaporte.js y todo funciona bien, pero cuando implemento el middleware csurf así,
// CSURF const csurf = require("csurf"); const csrfMiddleware = csurf(); app.use(csrfMiddleware); // Register usersRouter.get("/register", checkAuthenticated, (req, res) => { res.render("register", { csrfToken: req.csrfToken() }); }); // Login usersRouter.get("/login", checkAuthenticated, (req, res) => { res.render("login", { csrfToken: req.csrfToken() }); });Y en mis formularios:
<input type="hidden" name="_csrf" value="<%= csrfToken %>" /> Recibo errores que dicen que csrfToken is not defined en mi página de visualización.
No hay mucha documentación sobre cómo usar exactamente csrfToken con una sesión rápida y almacenarlo en una sesión o tal vez incluso en una tienda (conectar pg simple), entonces, ¿hay alguna manera de resolver estos problemas?