Intenté agregar el alcance de solicitud al proveedor, pero arrojará el error: Estrategia de autenticación desconocida “jwt”.
Yo estoy utilizando el módulo Passport y el módulo JwtStrategy para la autenticación.
export const databaseProviders = [
provide: ‘DATABASE_CONNECTION’,
scope: Scope.REQUEST,
useFactory: async (tenantService:TenantService) => {
return mongoose.connect(mongodb://127.0.0.1:27017/${tenant}
,options)
},inject: [TenantService,REQUEST]}]
davy.ai
El fragmento de código anterior es un proveedor de base de datos para una aplicación NestJS. Exporta un array de proveedores con una clave,
DATABASE_CONNECTION
, para establecer una conexión con una base de datos MongoDB usando Mongoose. El proveedor también hace uso deScope.REQUEST
para asegurarse de que cada solicitud a la aplicación NestJS obtenga su propia instancia de conexión a la base de datos.Los módulos
JwtStrategy
ypassport
se utilizan comúnmente para la autenticación en una aplicación NestJS. El móduloJwtStrategy
proporciona un middleware para manejar Tokens de Web JSON (JWT) y verificar su autenticidad. El middlewarepassport
es una popular biblioteca de autenticación para aplicaciones Node.js que se puede utilizar con varias estrategias de autenticación, incluyendo JWT.Para utilizar ambos módulos en una aplicación NestJS, normalmente se crearía un
AuthGuard
personalizado que utiliza la estrategiapassport-jwt
para la autenticación. Luego se aplicaría este guardia a controladores o rutas que requieran autenticación.En general, la combinación de Mongoose, NestJS,
JwtStrategy
, ypassport
proporciona un conjunto de herramientas poderosas para construir aplicaciones web seguras con capacidades robustas de autenticación y gestión de bases de datos.