iammm v0.0.5
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.