JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 39
  • Score
    100M100P100Q85842F
  • License MIT

NestJS Keycloak Admin

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.