Package Exports
- @apoveda25/nestjs-keycloak-admin
Readme
Características
- Integración Sencilla: Se integra sin problemas con las aplicaciones NestJS.
- Acceso al Cliente Admin: Proporciona acceso directo a las funcionalidades
del
@keycloak/keycloak-admin-client
. - Configuración Flexible: Permite configurar el cliente Keycloak Admin utilizando los patrones de módulos de NestJS.
Instalación
Para instalar esta librería en tu proyecto NestJS, utiliza npm o yarn:
# npm
npm install @apoveda25/nest-keycloak-admin
# yarn
yarn add @apoveda25/nest-keycloak-admin
# pnpm
pnpm install @apoveda25/nest-keycloak-admin
# Deno
deno install jsr:@apoveda25/nest-keycloak-admin
deno install npm:@apoveda25/nest-keycloak-admin
Uso
Para usar el módulo, impórtalo en tu AppModule
(o cualquier otro módulo) y
configúralo usando el método forRoot()
:
// src/app.module.ts
import { Module } from "@nestjs/common";
import { NestKeycloakAdminModule } from "@apoveda25/nest-keycloak-admin";
import { ConfigModule, ConfigService } from "@nestjs/config";
import { CacheModule } from "@nestjs/cache-manager";
import KeyvValkey from "@keyv/valkey";
@Module({
imports: [
CacheModule.registerAsync({
useFactory: () => ({
isGlobal: true,
stores: [new KeyvValkey("redis://localhost:6379")],
ttl: 300_000,
}),
isGlobal: true,
}),
NestKeycloakAdminModule.forRoot({
realmName: "your-realm",
baseUrl: "http://localhost:8080", // or http://localhost:8080/auth
credentials: {
grantType: "client_credentials",
clientId: "your-client-id",
clientSecret: "your-client-secret",
scopes: [
"openid",
"address",
"profile",
"email",
"phone",
],
},
}),
],
})
export class AppModule {}
Luego, puedes inyectar NestKeycloakAdminService
en tus servicios o
controladores:
// src/some.service.ts
import { Injectable } from "@nestjs/common";
import {
NestKeycloakAdminService,
NestKeycloakAdminServiceToken,
} from "@apoveda25/nestjs-keycloak-admin";
@Injectable()
export class SomeService {
constructor(
@Inject(
NestKeycloakAdminServiceToken,
) private readonly nestKeycloakAdminService: NestKeycloakAdminService,
) {}
async listUsers() {
return this.service.users.find();
}
}
Dependencias
Este paquete depende de las siguientes librerías de npm:
@keycloak/keycloak-admin-client
@nestjs/common
@nestjs/cache-manager
Contribuciones
¡Las contribuciones son bienvenidas! Por favor, consulta el rastreador de incidencias para problemas conocidos o para enviar nuevos.
Licencia
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.
Construcción del Paquete
Este paquete se construye utilizando dnt
(Deno to Node.js Transpiler). Para
construir el paquete npm desde el código fuente de Deno:
deno run -A build_npm.ts
Este comando generará el paquete npm en el directorio .npm
.