0.0.1-canary.0 • Published 7 months ago

@sketchmonk/nest-hydra v0.0.1-canary.0

Weekly downloads
-
License
-
Repository
-
Last release
7 months ago

@sketchmonk/nest-hydra

@sketchmonk/nest-hydra is a Nest.js client wrapper for ORY Hydra, an open-source OAuth2 and OpenID Connect server. This package simplifies the integration of OAuth2 and OpenID Connect functionality into your Nest.js applications by providing a convenient way to interact with the ORY Hydra server.

Installation

You can install @sketchmonk/nest-hydra using npm, yarn or pnpm:

npm install @sketchmonk/nest-hydra
# or
yarn add @sketchmonk/nest-hydra
# or
pnpm add @sketchmonk/nest-hydra

Certainly! Here's the configuration and usage sections for @sketchmonk/nest-hydra based on the provided samples:

Configuration

To configure @sketchmonk/nest-hydra, you can use the following sample code with Nest.js's HydraClientModule:

import { Module } from '@nestjs/common';
import { HydraClientModule } from '@sketchmonk/nest-hydra';
import { ConfigModule, ConfigService } from '@nestjs/config';

@Module({
  imports: [
    HydraClientModule.registerAsync({
      imports: [ConfigModule.forRoot()],
      inject: [ConfigService],
      useFactory: (config: ConfigService) => ({
        basePath: config.get('HYDRA_ADMIN_URL', 'http://127.0.0.1:4445'),
      })
    }),
  ],
})
export class AppModule {}

This code allows you to dynamically configure the base URL for the ORY Hydra server using Nest.js's ConfigService. You can adjust the URL and other configuration options as needed.

Usage

To use @sketchmonk/nest-hydra in your application, you can create a service like the one in your sample code:

import { Injectable } from "@nestjs/common";
import { InjectHydraClient, HydraClient } from "@sketchmonk/nest";

@Injectable()
export class OAuth2Service {
    constructor(
        constructor(@InjectHydraClient() private readonly hydra: HydraClient) {}
    ) { }

    // ... (rest of your OAuth2 service methods)
}

The HydraClient is an object consisting of instances of all the API clients in hydra:

type HydraClient = {
    oauth2: OAuth2Api,
    jwk: JwkApi,
    oidc: OidcApi,
    wellKnown: WellknownApi,
    metadata: MetadataApi
}

You can inject the HydraClient object provided by @sketchmonk/nest-hydra into your service and use it to interact with ORY Hydra for various OAuth2 and OpenID Connect operations.

Please make sure to import the necessary modules and dependencies in your Nest.js application for everything to work correctly. Feel free to adapt and customize the code to suit your specific requirements and use cases.

Contributing

We welcome contributions to @sketchmonk/nest-hydra. If you find issues, have suggestions, or want to add new features, please open an issue or submit a pull request on GitHub.

License

This package is licensed under the MIT License. See the LICENSE file for details.

Author

@sketchmonk/nest-hydra is developed and maintained by Sketchmonk. If you have questions or need assistance, please feel free to contact me at developer@sketchmonk.com.