In Node.js possiamo verificare la presenza delle chiavi API usate dalle nostre app.
La soluzione è la seguente:
'use strict';
const mongoose = require('mongoose');
const express = require('express');
const app = express();
mongoose.Promise = Promise;
mongoose.connect('mongodb://localhost:27017/test');
const keys = require('./models/keys');
app.get('/api', async (req, res) => {
// In produzione: aggiungere validazione sintattica della chiave
try {
let key = await keys.findOne({key: req.query.key});
if(key) {
// Processiamo la richiesta
} else {
res.json({
status: 403,
message: 'Unauthorized'
})
}
} catch(err) {
res.json({
status: 500,
message: 'Server error'
})
}
});
Quando si utilizzerà l'URL /api/?key=1234
la chiave API passata come parametro della query string verrà verificata in modo da bloccare accessi non autorizzati.