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

TitreURLTagsActions
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'));

Connexion administrateur

Par défaut, change la valeur de ADMIN_PLAIN_PASSWORD dans le code avant de déployer.