Mapa de uso
Qué peso tiene este paquete dentro del runtime
Flujo del paquete
Cómo atraviesa este paquete las fases del runtime de xtaskjs
Antes del arranque
Registra estrategias JWT o JWE y decora controladores protegidos para que el framework sepa qué superficie de autenticación publicar.
Durante CreateApplication()
Security inicializa servicios de autenticación y autorización, conecta flujos compatibles con Passport y expone el contexto auth a la canalización de rutas.
Durante app.close()
El gestor del ciclo de vida de security desmonta su estado junto con el resto del runtime de la aplicación.
Superficie API
Exports representativos del paquete original
Decoradores de ruta
- Authenticated
- Auth
- Roles
- AllowAnonymous
APIs de estrategias
- registerJwtStrategy
- registerJweStrategy
- JwtSecurityStrategy
- JweSecurityStrategy
Servicios inyectados
- InjectAuthenticationService
- InjectAuthorizationService
- InjectPassport
- InjectSecurityLifecycleManager
Uso
Flujo típico de adopción
1. Registra estrategias
Llama a registerJwtStrategy() o registerJweStrategy() antes del arranque, o usa sus formas decorador en módulos de configuración.
2. Protege rutas de forma declarativa
Aplica Authenticated, Roles, Auth o AllowAnonymous a controladores y handlers de ruta en lugar de incrustar comprobaciones auth en la lógica de negocio.
3. Inyecta servicios de security cuando haga falta
Para flujos avanzados, inyecta los servicios de autenticación, autorización o ciclo de vida desde el contenedor DI.
Ejemplo
Fragmento de referencia
import { Controller, Get } from "@xtaskjs/common";
import { Authenticated, Roles, registerJwtStrategy } from "@xtaskjs/security";
registerJwtStrategy({
name: "default",
default: true,
secretOrKey: process.env.JWT_SECRET,
});
@Controller("/admin")
@Authenticated()
export class AdminController {
@Get("/")
@Roles("admin")
dashboard(req: any) {
return { user: req.user.sub, roles: req.auth.roles };
}
}
Ejemplos
Ejemplos oficiales para revisar después
Ejemplos de referencia: 06-security_app and 07-security_express_app
Relacionados
Paquetes que suelen usarse junto a este