@txdmobile/nestjs-auth
TypeScript icon, indicating that this package has built-in type declarations

6.0.5 • Public • Published

TxD Mobile NestJS Auth

Nestjs library for auth using private and public key with user roles

Installation

$ npm install --save @nestjs/passport passport
$ npm install --save @txdmobile/nestjs-auth

Import Module

import { NestjsAuthModule } from '@txdmobile/nestjs-auth';

const config = {
  publicKey: "<PUBLIC_KEY>"
}

@Module({
  imports: [NestjsAuthModule.config(config)],
  ...

Note: NestjsAuthModule was defined with the decorator "@Global", therefore it should only be imported in the root module of the app

Use Bearer Authentication

import { Controller, Get, UseGuards } from '@nestjs/common';
import { AppService } from './app.service';
import { RolesGuard, Roles } from '@txdmobile/nestjs-auth';
import { AuthGuard } from '@nestjs/passport';

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  @Get()
  @UseGuards(AuthGuard())
  getHello(): string {
    return this.appService.getHello();
  }
}

Use Bearer Authentication with Roles

import { Controller, Get, UseGuards } from '@nestjs/common';
import { AppService } from './app.service';
import { RolesGuard, Roles } from '@txdmobile/nestjs-auth';
import { AuthGuard } from '@nestjs/passport';

@Controller()
export class AppController {
  constructor(private readonly appService: AppService) {}

  @Get()
  @Roles('admin')
  @UseGuards(AuthGuard(), RolesGuard)
  getHello(): string {
    return this.appService.getHello();
  }
}

Retrieve the user object from request

  ...
  @Get('user')
  @UseGuards(AuthGuard())
  getUser(@Req() req) {
    return req.user;
  }

  //this code returns the following json
  {
    "uid": "<username>",
    "roles": [
        "admin"
    ]
  }

Readme

Keywords

none

Package Sidebar

Install

npm i @txdmobile/nestjs-auth

Weekly Downloads

22

Version

6.0.5

License

MIT

Unpacked Size

27.4 kB

Total Files

34

Last publish

Collaborators

  • tiendadigitalparis
  • gmiquile
  • danhernd