const express = require('express'); const cookieParser = require('cookie-parser'); const session = require('express-session'); const csrf = require('csurf'); const bodyParser = require('body-parser'); const app = express(); const port = 3000; // Middleware setup app.use(cookieParser()); app.use(bodyParser.urlencoded({ extended: false })); // For parsing application/x-www-form-urlencoded // Session middleware (required for csurf) app.use(session({ secret: 'your-secret-key-for-session', resave: false, saveUninitialized: true, cookie: { secure: process.env.NODE_ENV === 'production', httpOnly: true, sameSite: 'lax' } })); // CSRF middleware. Requires cookie-parser and session middleware. // `value` can be a function that returns the token from a request, e.g., req.body._csrf, req.query._csrf, or a custom header. const csrfProtection = csrf({ cookie: true }); // Example routes app.get('/', csrfProtection, (req, res) => { const csrfToken = req.csrfToken(); res.send(`
CSRF Token: ${csrfToken}