Skip to content

Auth Config

The Authentication Configuration (AuthConfig) provides a streamlined approach for configuring authentication-related settings in your application (AuthNModule). It simplifies the process of managing settings like registration approval processes, allowing you to tailor the user authentication experience to meet your application's requirements.

AuthConfig can be integrated with authentication modules, offering customizable options to control and interact with authentication processes effectively.

Environment Variables in AuthConfig:

AuthConfig does not directly utilize environment variables for configuration. Instead, it is configured programmatically with options passed during its creation. However, you can adapt your environment variables to influence these options if needed.

How to Create AuthConfig:

Creating an AuthConfig involves calling the createAuthConfig function with optional settings. Here's how you can do it:

ts
// src/config/index.ts

import { createAuthConfig } from '@deep/nest-kit/dist/configs';

// Optional configuration options can be passed here
export const AuthConfig = createAuthConfig({
  waitingForApprovalAfterRegistration: true // or false, depending on your needs
});

This example demonstrates initializing the AuthConfig with an option that dictates whether user registrations require approval before activation.

How to Inject AuthConfig into a Service or Controller:

Injecting AuthConfig into your services or controllers allows you to access its settings wherever needed. This is achieved using the @Inject() decorator provided by NestJS. Here's a step-by-step guide to doing so:

  1. Import Necessary Modules:

    Begin by importing Inject from @nestjs/common, which is necessary for the injection process.

    ts
    import { Inject } from '@nestjs/common';
  2. Import Your AuthConfig:

    Ensure that your AuthConfig is imported from where it is defined.

    ts
    import { AuthConfig } from './config'; // Adjust the path as needed
  3. Inject AuthConfig Using the @Inject() Decorator:

    Now, you can use the @Inject() decorator to inject AuthConfig into your class. Here's an example for a service class:

    ts
    @Injectable()
    export class YourAuthService {
      constructor(
        @Inject(AuthConfig.KEY) private authConfig: ConfigType<keyof AuthConfig>,
      ) {}
    
      // Here you can access this.authConfig...
    }

Created by DeepVision Software.