Add API usage limiter

This commit is contained in:
xfarrow 2024-02-14 10:24:03 +01:00
parent f89e05e508
commit 585e9397c4
2 changed files with 11 additions and 0 deletions

View File

@ -3,6 +3,8 @@
# API server settings
API_SERVER_PORT = 3000
JWT_SECRET_KEY = jwt-secret # Change this
LIMITER_WINDOW = 3600000 # 1 hour in milliseconds
LIMITER_MAXIMUM_PER_WINDOW = 500 # 500 requests for each window
# Database settings
POSTGRES_SERVER = localhost

View File

@ -11,14 +11,23 @@
IN THE SOFTWARE.
*/
// Importing modules
const express = require('express');
const cors = require('cors');
const rateLimit = require('express-rate-limit');
const api_controller = require('./api_controller.js');
require('dotenv').config();
// Application configuration
const app = express();
app.use(express.json()); // Middleware which parses JSON for POST requests
app.use(cors()); // Enable CORS for all routes
app.use(rateLimit({
windowMs: process.env.LIMITER_WINDOW,
max: process.env.LIMITER_MAXIMUM_PER_WINDOW,
message: 'Too many requests from this IP, please try again later'
})); // Apply the rate limiter middleware to all routes
app.post('/api/register', api_controller.registerPerson); // Register a Person
app.post('/api/login', api_controller.login); // Login
app.get('/api/person/:id', api_controller.verifyToken, api_controller.getPerson); // Obtain Person's details