Administration — Liste publique des jeux
Cette interface permet d'ajouter, modifier ou supprimer les jeux publiés sur ton site. Les modifications peuvent être soit téléchargées en tant que
games.json (à uploader manuellement), soit envoyées à un endpoint serveur /admin/save (voir exemple Node.js plus bas).Statut : —
Ajouter un jeu
Jeux actuels
| Titre | URL | Tags | Actions |
|---|
Sécurité : la protection par mot de passe côté client n'est pas une protection forte. Pour une vraie sécurité, protège l'endpoint serveur (ex. Basic Auth, JWT ou sessions) et héberge cette page hors de l'accès public ou derrière une authentification serveur.
Exemple de serveur Node.js (Express) pour persister la liste
// npm install express body-parser basic-auth fs
const express = require('express');
const basicAuth = require('basic-auth');
const bodyParser = require('body-parser');
const fs = require('fs');
const app = express();
const ADMIN_USER = 'admin';
const ADMIN_PASS = 'change_this_password';
const GAMES_PATH = './public/games.json';
app.use(bodyParser.json({limit:'1mb'}));
function checkAuth(req,res,next){
const user = basicAuth(req);
if(!user || user.name!==ADMIN_USER || user.pass!==ADMIN_PASS) return res.status(401).set('WWW-Authenticate','Basic realm="Admin"').end('Unauthorized');
next();
}
app.post('/admin/save', checkAuth, (req,res)=>{
const data = req.body;
if(!Array.isArray(data)) return res.status(400).send('Invalid payload');
fs.writeFileSync(GAMES_PATH, JSON.stringify(data, null, 2));
res.send({ok:true});
});
app.use(express.static('public'));
app.listen(3000, ()=>console.log('Server 3000'));