MongoDB store adapter for the express-brute.~
npm install express-brute-mongo
~~javascript
var ExpressBrute = require('express-brute'),
var MongoStore = require('express-brute-mongo');
var MongoClient = require('mongodb').MongoClient;
var store = new MongoStore(function (ready) { MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
var bruteforce = new ExpressBrute(store);
app.post('/auth', bruteforce.prevent, // error 403 if we hit this route too often function (req, res, next) {~
Installation
Usage
var store = new MongoStore(function (ready) { MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err, db) {
if (err) throw err;
ready(db.collection('bruteforce-store'));
});
});var bruteforce = new ExpressBrute(store);
app.post('/auth', bruteforce.prevent, // error 403 if we hit this route too often function (req, res, next) {
res.send('Success!');
}
);
Expire documents
Create an index withexpireAfterSeconds: 0
in mongo as follows:db.my_api_limits_coll.ensureIndex({expires: 1}, {expireAfterSeconds: 0});