url-whitelist
url-whitelist can create whitelists by including and excluding url patterns and check urls against them
see url-pattern for supported url patterns
install
npm install url-whitelist
use
require
newWhitelist = require 'url-whitelist'
make a new whitelist
whitelist = newWhitelist
whitelist a url pattern
whitelistinclude '/users/:id'
check whether urls are on the whitelist
whitelistcheck '/users/1' # => true whitelistcheck '/projects/1' # => false
blacklisting
by default a whitelist excludes everything. you can include everything by default and then selectively exclude patterns.
blacklist = newWhitelistblacklistinclude '*' blacklistexclude '/users/:id' blacklistcheck 'sajdflkasjdfl' # => true blacklistcheck '/users/:id' # => false blacklistcheck 'skljdf' # => true
example
whitelist /projects/*
except for /projects/hidden/*
and projects/:id/secret
.
also whitelist /users/:id
newWhitelist = require 'url-whitelist' whitelist = newWhitelist whitelistinclude '/projects/*'whitelistexclude '/projects/hidden/*'whitelistexclude '/projects/:id/secret'whitelistinclude '/users/:id' whitelistcheck '/projects/foo/bar/baz' # => true whitelistcheck '/projects/hidden/bar/baz' # => false whitelistcheck '/projects/5/secret' # => false whitelistcheck '/projects/5/secret/foo' # => true whitelistcheck '/users' # => false whitelistcheck '/users/5' # => true whitelistcheck '/tasks/57' # => false
how check works (pseudocode)
whitelisted = false
go through all include- and exclude-patterns in the order they were defined:
if url matches pattern
if is include
whitelisted = true
else
whitelisted = false