0.0.3 • Published 10 years ago
express-simple-secure v0.0.3
express-simple-secure
Express middleware that only exposes a route (and response body) when the proper token is provided in the query string or header.
Table of Contents
Requirements
- Node >= v4
- Express >= v4
Installation
npm install --save express-simple-secure
Example usage
var app = require('express');
var simpleSecure = require('express-simple-secure');
var options = {
httpMethod: 'get',
paramName: 'nickname',
token: '007',
caseSensitive: true,
checkType: 'query',
object: {firstName: 'James', lastName: 'Bond', company: 'MI6'},
contentType: 'json'
};
// Via Express router
var router = express.Router();
router.get('/agent', simpleSecure(options));
app.use('/secret', router);
app.listen(3000, '0.0.0.0');
// http://localhost:3000/secret/agent?nickname=007Run npm run dev to test the above code.
Options
var options = {
object: null,
token: '',
method: 'get',
paramName: 'key',
caseSensitive: true,
checkType: 'query'
};- object
- Required
- Defines a/n:
- Object that will be returned as application/json in the body of the response
- String that will be returned as text/html in the body of the response
- A function that returns html or an object...
orfunction(){ return '<h1>Meow</h1>'; }function() { return { message: 'Woof' }; }
- token
- Required
- A general rule of thumb is make this a very long, strong password or guid
- If a string value is provided, this will be the token that is checked against the appropriate checkType parameter
- This is a 'security through obscurity' approach
- If a falsy value is provided, the middleware will be skipped within the Express app
- method
- Required
- Valid values are:
get,post,put,patch,options,delete,head, orany
- paramName
- Optional
- Default is
key - When used with the checkType option it is the specific parameter to check against the token value
- caseSensitive
- Optional
- Default is
true - Defines the case sensitivity of the token value actual vs. expected comparison
- checkType
- Optional
- Default is
query - Defines where to check for the paramName defined parameter
- Valid values are:
query,header, orany
Miscellaneous
npm run dev# Runs sample appDEBUG=express-simple-secure npm run dev# Runs sample app with debuggingnpm run test# Runs all testsnpm run test-unit# Runs only unit testsnpm run test-integration# Runs only self-integration testsnpm run coverage# Runs istanbul coverage analysisnpm run test-prod# Runs all tests, coverage anyalysis, and uploads results to Code Climate. Requires theCODECLIMATE_REPO_TOKENenvironment variable be set.npm run clean# Removes node_modules and other temporary items so you can start the project fresh
0.0.3
10 years ago