mirror of
https://github.com/xfarrow/blink
synced 2025-04-02 15:10:16 +02:00
Add API usage limiter
This commit is contained in:
parent
f89e05e508
commit
585e9397c4
@ -3,6 +3,8 @@
|
|||||||
# API server settings
|
# API server settings
|
||||||
API_SERVER_PORT = 3000
|
API_SERVER_PORT = 3000
|
||||||
JWT_SECRET_KEY = jwt-secret # Change this
|
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
|
# Database settings
|
||||||
POSTGRES_SERVER = localhost
|
POSTGRES_SERVER = localhost
|
||||||
|
@ -11,14 +11,23 @@
|
|||||||
IN THE SOFTWARE.
|
IN THE SOFTWARE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Importing modules
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const cors = require('cors');
|
const cors = require('cors');
|
||||||
|
const rateLimit = require('express-rate-limit');
|
||||||
const api_controller = require('./api_controller.js');
|
const api_controller = require('./api_controller.js');
|
||||||
require('dotenv').config();
|
require('dotenv').config();
|
||||||
|
|
||||||
|
// Application configuration
|
||||||
const app = express();
|
const app = express();
|
||||||
app.use(express.json()); // Middleware which parses JSON for POST requests
|
app.use(express.json()); // Middleware which parses JSON for POST requests
|
||||||
app.use(cors()); // Enable CORS for all routes
|
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/register', api_controller.registerPerson); // Register a Person
|
||||||
app.post('/api/login', api_controller.login); // Login
|
app.post('/api/login', api_controller.login); // Login
|
||||||
app.get('/api/person/:id', api_controller.verifyToken, api_controller.getPerson); // Obtain Person's details
|
app.get('/api/person/:id', api_controller.verifyToken, api_controller.getPerson); // Obtain Person's details
|
||||||
|
Loading…
x
Reference in New Issue
Block a user