Empecé a convertir el proyecto express a nestjs. ¿Cómo debería funcionar en Nestjs. Aquí está el código de trabajo de Express. (El código a continuación solo redirige a la página de inicio de sesión de Steam)
/* eslint-disable space-before-function-paren */ // Require all the installs var express = require('express'); var passport = require('passport'); var session = require('express-session'); var passportSteam = require('passport-steam'); var SteamStrategy = passportSteam.Strategy; var app = express(); // Let's set a port var port = 4000; // Spin up the server app.listen(port, () => { console.log('Listening, port ' + port); }); // Set up the SteamStrategy // Required to get data from user for sessions passport.serializeUser((user, done) => { done(null, user); }); passport.deserializeUser((user, done) => { done(null, user); }); // Initiate Strategy passport.use( new SteamStrategy( { returnURL: 'http://localhost:' + port + '/api/auth/steam/return', realm: 'http://localhost:' + port + '/', apiKey: 'My API key', }, function (identifier, profile, done) { process.nextTick(function () { profile.identifier = identifier; return done(null, profile); }); } ) ); app.use( session({ secret: 'Whatever_You_Want', saveUninitialized: true, resave: false, cookie: { maxAge: 3600000, }, }) ); app.use(passport.initialize()); app.use(passport.session()); // Routes app.get('/', (req, res) => { res.send(req.user); }); app.get( '/api/auth/steam', passport.authenticate('steam', { failureRedirect: '/' }), function (req, res) { res.redirect('/'); } ); app.get( '/api/auth/steam/return', passport.authenticate('steam', { failureRedirect: '/' }), function (req, res) { res.redirect('/'); } );La pregunta es ¿cómo implementar lo mismo en nestjs? O si quiero implementar middlewares para la librería de pasaportes (serializeUser, deserializeUser), ¿cómo debería suceder? En los documentos oficiales de Nest encontré estos ejemplos de middlewares personalizados.
export function logger(req: Request, res: Response, next: NextFunction) { console.log(`Request...`); next(); };Pero, ¿cómo debo usar el software intermedio del pasaporte?