Contáctanos
Webflow Premium Partner Ehab Fayez
Volver a Agent Skills
Seguridad y Calidad

Passport.js Strategies

Configura el middleware de autenticación Passport.js con más de 500 estrategias para aplicaciones Express y Node.js.

Claude Code Cursor Copilot

Descripción General

Passport.js es el middleware de autenticación más utilizado para Node.js, con más de 500 estrategias de autenticación disponibles como paquetes separados. Sigue una arquitectura modular donde cada método de autenticación (local, OAuth, SAML, etc.) se implementa como un plugin de estrategia, manteniendo la biblioteca central ligera y flexible.

La biblioteca se integra perfectamente con Express.js y proporciona una API consistente para autenticar solicitudes. Las estrategias manejan los detalles de cada método de autenticación mientras Passport gestiona la serialización de sesiones, el aumento de solicitudes y el control del flujo de autenticación. Las estrategias populares incluyen passport-local para usuario/contraseña, passport-google-oauth20 para Google y passport-jwt para autenticación basada en tokens.

Passport soporta tanto autenticación basada en sesiones como sin estado. Para autenticación basada en sesiones, proporciona hooks serialize/deserialize que controlan cómo se almacenan y recuperan los datos del usuario en las sesiones. Para autenticación de API, las estrategias JWT y Bearer token permiten validación de solicitudes sin estado sin almacenamiento de sesiones del lado del servidor.

¿Para Quién Es?

  • Agregar autenticación local usuario/contraseña a una app Express
  • Implementar inicio de sesión Google OAuth2 con Passport
  • Configurar autenticación API basada en JWT
  • Combinar múltiples estrategias de autenticación en una aplicación

Instalación

Configurar Claude Code
npm install passport passport-local express-session

Configuración

// config/passport.ts
import passport from "passport"
import { Strategy as LocalStrategy } from "passport-local"

passport.use(new LocalStrategy(
  async (username, password, done) => {
    const user = await User.findOne({ username })
    if (!user || !await user.verifyPassword(password)) {
      return done(null, false, { message: "Invalid credentials" })
    }
    return done(null, user)
  }
))