0.0.5 • Published 7 months ago

iammm v0.0.5

Weekly downloads
-
License
Oxinus.io
Repository
gitlab
Last release
7 months ago

OXINUS IAM Module

The OXINUS IAM Module is a npm package designed to streamline JWT validation, HMAC authentication, authorization guards, and policy handlers for routes in your application. This module automatically validates tokens and HMAC authentication and authorizes policies based on token information for any routes.

Installation

To install the IAM Module, use npm:

npm install @oxinus-io/iam

Usage

App Module Configuration

After installing the package, import it into your app.module.ts and configure it using IamModule.forRoot with a ConfigService instance:

import { Module } from '@nestjs/common';
import { IamModule } from '@oxinus-io/iam';
import { ConfigService } from '@nestjs/config';

@Module({
  imports: [
    IamModule.forRoot(new ConfigService())
  ],
})
export class AppModule {}

Feature Module Configuration

In your feature modules, you can import JWT or HMAC guards as needed:

import { Module } from '@nestjs/common';
import { JwtAuthGuard, HmacMiddleware } from '@oxinus-io/iam';

@Module({
  providers: [JwtAuthGuard, HmacMiddleware],
})
export class FeatureModule {}

Controller and Method Level Guards

To use guards at the controller or method level, utilize the @UseGuards decorator:

import { Controller, Get, UseGuards } from '@nestjs/common';
import { AuthGuard, PoliciesGuard } from '@oxinus-io/iam';

@Controller('example')
export class ExampleController {
  
  @Get()
  @UseGuards(AuthGuard, PoliciesGuard)
  findAll() {
    // Your logic here
  }
}

Policy Checking

To check policies at the method level, use the @CheckPolicies decorator. The first parameter is the scope, the second is the action, and the last optional parameter is the specific parameter:

import { Controller, Get, Param } from '@nestjs/common';
import { CheckPolicies } from '@oxinus-io/iam';

@Controller('users')
export class UserController {
  
  @Get(':id')
  @CheckPolicies(new PolicyHandler('User', 'getOne', 'id'))
  findOne(@Param('id') id: string) {
    // Your logic here
  }
}

Summary

The OXINUS IAM Module provides a comprehensive solution for JWT validation, HMAC authentication, authorization guards, and policy handling. By following the configuration steps, you can ensure secure and organized access control in your application.