Skip to content

IP filter module for Nest framework (node.js) 🌎

License

Notifications You must be signed in to change notification settings

timi137137/nestjs-ipfilter

Repository files navigation

Nest Logo

IP filter module for Nest framework (node.js) 🌎

NPM Version Package License NPM Downloads

Description

IP filter module for Nest.

This module allows you to control whether certain routes can be accessed from listed addresses.

Thanks to awesometic, this module was developed with reference to his package

Installation

$ npm i --save @timi137/nestjs-ipfilter

Quick Start

First register the filter in app.module.ts, The sample code shows the IP address access interface in the global deny list.

IpFilterModule.register({
  isGlobal: true,
  mode: 'deny',
  trustProxy: true,
  ip: {
    list: ['127.0.0.1'],
  },
})

Then add the @IpFilter() decorator to the controller or method you want to filter.

Pass false to the decorator to prevent filtering from running on the corresponding controller or method.

@IPFilter(false)
@Get()
getHello(): string {
  return 'Hello world!';
}

Options

Name Type Default Description
isGlobal boolean false enabling this option will filter all routes
mode string deny deny or allow
trustProxy boolean or string[] false trust proxy headers
ip.list string[] undefined list of IPs
ip.range string[] undefined list of IP ranges, Only the start and end of the pass are allowed
ip.subnet string[] undefined List of subnets. The passed value must conform to the specification.

Example Options

{
  isGlobal: true,
  mode: 'deny',
  trustProxy: true,
  ip: {
    list: ['127.0.0.1', '192.168.0.1'],
    range: ['192.168.1.1', '192.168.1.100'],
    subnet: ['192.168.0.1/24']
  },
}

License

This project is MIT licensed.