Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@webundsoehne/nestjs-auth0-guard

Package Overview
Dependencies
Maintainers
2
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@webundsoehne/nestjs-auth0-guard

NestJS Auth0 Guard

  • 1.1.0
  • latest
  • npm
  • Socket score

Version published
Maintainers
2
Created
Source

Web und Söhne - Logo

Web & Söhne is Austrian's leading expert in programming and implementing complex and large web projects.

@webundsoehne/nestjs-auth0-guard

Version Downloads/week

Description

This is an Auth0 guard, which covers the whole integration for you.

Implementation

Module: ./module.ts

  import { Module, NestModule } from '@nestjs/common'
  import { Auth0Module } from '@webundsoehne/nestjs-auth0-guard'
  import TestController from './controller'

  @Module({
    imports: [
      Auth0Module.register({
        domain: 'customer-domain.auth0.com',
        clientId: 'auth0-client-identifier',
        clientSecret: 'auth0-client-secret',
        audience: 'https://customer-domain.com',
        namespace: 'https://customer-domain.com'
      })
    ],
    controller: [
      TestController
    ]
  })
  export class Server implements NestModule {}

Controller: ./controller.ts

  import { Controller, Get, Post, UseGuards } from '@nestjs/common'
  import { AuthGuard, Auth0TokenUser, Permissions, User } from '@webundsoehne/nestjs-auth0-guard'

  @Controller('test')
  @UseGuards(AuthGuard.withPermissions(['read:test', 'save:test', 'remove:test']))
  export class TestController {
    @Permissions('read:test')
    @Get()
    getTest () {}

    @Permissions('save:test')
    @Post()
    getTest (@User() user: Auth0TokenUser) {}
  }

Auth0Module

The Auth0Module.register(options) has to be imported once in your main NestModule. It requires the configuration for communicating with Auth0.

Options:

NameTypeRequiredDescription
domainStringtrueThe Auth0 domain of your account's tenant
clientIdStringtrueThe identifier of the Auth0 client
clientSecretStringtrueThe secret key of the used Auth0 client
audienceStringfalseThe configured audience you want to login (Fallback: http://localhost:3000)
namespaceStringfalseThe namespace of the JWT property names, which should be extracted to the user's object (Fallback: audience)

AuthGuard

If you want to enable the guard for a controller or method, you have to use the AutheGuard. You may use the jumper AuthGuard.withPermissions(permissions: string | string[]), which allows you to tell the guard which permissions are allowed without using the decorator.

Permissions

The Permissions(permissions: string | string[]) decorator restricts, the access to an method, to one of the set permission values.

User

The User(key?: string) decorator allows you to fetch user specific information out of the JWT payload.

Publishing

On each Git tag commit to this repo, the source-code will be automatically transpiled and published to NPM.

Stay in touch

Keywords

FAQs

Package last updated on 16 Mar 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc